7

WEBAPI応答からxmlns名前空間を削除するのを手伝ってください。

追加、

config.Formatters.XmlFormatter.UseXmlSerializer = true;

(また)

[DataContract(Namespace="")]

私を助けませんでした。あなたの助けは大歓迎です。

4

1 に答える 1

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);
    }
   }
}
于 2013-05-03T07:35:58.457 に答える