2012-12-13 52 views
7

请帮助我从WEB API响应中删除xmlns名称空间。如何从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); 
    } 
    } 
} 
相关问题