2012-12-13 5 views
7

WEB APIレスポンスからxmlnsネームスペースを削除してください。WEB APIレスポンスからネームスペースを削除する方法

追加、

config.Formatters.XmlFormatter.UseXmlSerializer = true; 

(または)

[DataContract(Namespace="")] 

私を助けていませんでした。あなたの助けが大変ありがとうございます。

+0

解決策を回答として投稿してください。問題ではない。 – arulmr

+0

ありがとうございました。私の投稿を編集してください。これは非常に役に立ちます。 –

答えて

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); 
    } 
    } 
} 
関連する問題