从序列化XML中删除类型和名称空间

时间:2014-06-04 20:19:30

标签: c# xmlserializer

对于我正在使用的代码,我有类似的东西:

FileStream logStream = new FileStream(@"C:\mytest\mytest.xml", FileMode.Open);
XmlSerializer xmlSerializer = new XmlSerializer(myProvider.GetType());
xmlSerializer.Serialize(logStream, MyProvider);

这会生成XML,如下所示:

<ProviderType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" .... 

但是在Fiddler中看到SOAP中的XML我看到了:

<Provider .......

所以它不是提供者**类型**而且它没有那些命名空间 ......

我应该如何改进代码以生成类似的XML?

public ProviderType Provider
{
    get
    {
        return this.providerField;
    }
    set
    {
        this.providerField = value;
    }
}

1 个答案:

答案 0 :(得分:1)

如果您希望ProviderType类的实例序列化为<Provider>,那么您必须这样说:

[XmlRoot(Name="Provider")]
public class ProviderType
{
}

您看到的额外命名空间与任何符合XML的实现无关。在确定命名空间是问题之前,获取其他所有内容以匹配您所需的XML。