停止DataContractSerializer放入命名空间?

时间:2010-09-28 10:11:47

标签: datacontractserializer datacontract

我想将datacontract类序列化为XMl,但没有命名空间。

我添加了:

[DataContract(Namespace="")]

但我仍然得到:

<Person xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Title>Mr</Title>
...
</Person>

有没有办法阻止这种情况发生,因为我只想将干净的xml传递给遗留组件。

1 个答案:

答案 0 :(得分:0)

默认情况下,DataContractSerializer会发出默认的架构命名空间。尝试使用XmlSerializer,例如:

XmlSerializer serializer = new XmlSerializer(person.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("","");
serializer.Serialize(xmlWriter, person, ns);

查看更多讨论here