我正在寻找一种C#方法,我可以将一个类序列化为XML并添加一个名称空间,但定义该名称空间将使用的前缀。XML序列化和命名空间前缀
最后我想生成以下XML:
<myNamespace:Node xmlns:myNamespace="...">
<childNode>something in here</childNode>
</myNamespace:Node>
我知道有两个DataContractSerializer
和XmlSerializer
我可以添加一个命名空间,但他们似乎在内部生成一个前缀,用的东西,我无法控制。我能够用这些序列化器中的任何一个来控制它(我可以使用它们中的任何一个)?
如果我无法控制名称空间的生成,那么我是否需要编写自己的XML序列化程序,如果是,那么最适合写入它的是什么?
+1但我可以建议一个编辑,以清楚说明.Add方法中的第一个参数是魔术在设置前缀时发生的地方。直到我检查了MSDN文档之前,我从答案中不清楚。 – 2010-02-26 06:18:20
公平地假设DataContractSerializer没有等价物? (只是想保持我的选择开放) – 2010-02-26 06:30:51
@Slace - 是的,我相信可以肯定的是,**不是**的等价物。最终,DCS不打算让你对输出进行很多控制(如果你想控制xml,使用'XmlSerializer' - 这是它的工作)。 – 2010-02-26 07:08:58