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

本文关键字:空间 类型 删除 序列化 XML | 更新日期: 2023-09-27 18:06:58

我的代码是这样的:

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;
    }
}

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

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

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

您看到的额外名称空间对任何符合标准的XML实现都无关紧要。在确定名称空间是问题所在之前,让其他所有内容与所需的XML匹配。