从序列化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;
}
}
如果您希望ProviderType
类的实例序列化为<Provider>
,那么您必须这样说:
[XmlRoot(Name="Provider")]
public class ProviderType
{
}
您看到的额外名称空间对任何符合标准的XML实现都无关紧要。在确定名称空间是问题所在之前,让其他所有内容与所需的XML匹配。