2012-12-13 4 views
7

Пожалуйста, помогите мне удалить пространство имен xmlns из ответа API WEB.Как удалить пространство имен из ответа WEB API

Добавление,

config.Formatters.XmlFormatter.UseXmlSerializer = true; 

(или)

[DataContract(Namespace="")] 

не помог мне. Ваша помощь очень ценится.

+0

Опубликуйте свое решение в качестве ответа. Не в этом вопросе. – arulmr

+0

Спасибо arulmr. Продолжайте редактировать мои сообщения. Это было бы очень полезно. –

ответ

8

Наконец-то я нашел решение. Просто создал CustomXmlFormatter, чтобы удалить пространство имен из корневого элемента.

public class IgnoreNamespacesXmlMediaTypeFormatter : XmlMediaTypeFormatter 
{ 
public override Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content, TransportContext transportContext) 
{ 
    try 
    { 
     var task = Task.Factory.StartNew(() => 
     { 
      var xns = new XmlSerializerNamespaces(); 
      var serializer = new XmlSerializer(type); 
      xns.Add(string.Empty, string.Empty); 
      serializer.Serialize(writeStream, value, xns); 
     }); 

     return task; 
    } 
    catch (Exception) 
    { 
     return base.WriteToStreamAsync(type, value, writeStream, content, transportContext); 
    } 
    } 
} 
Смежные вопросы