作为尝试学习WCF的一部分,我正在阅读序列化.我正在努力了解如何在.NET 3.5中控制序列化.例如,我有一个带有一些公共属性的简单类.通过将DataContract属性添加到该类,我可以控制命名空间和类序列化时的名称.
另一方面,我可以添加Serializable属性(可能甚至不需要)和XmlType属性,这也允许我控制命名空间和用于序列化类的名称.
我实现了这两种方法,并在ServiceContract中使用该类作为接口调用的一部分.然后我使用Http分析器来查看各种对象是如何被serizal化的,我注意到XmlType根本不影响http中的xml.
我整天都试图理解这一点.我错过了什么?
更新:
我确实理解两者之间的区别以及它们为何存在.我只是不明白为什么我不能用XmlType影响生成的xml或者(只是试过它XmlRoot).
基本上,您可以通过实现IXmlSerializable来控制序列化的所有细节,除了名称空间和顶级元素的名称.为此,我假设您需要XmlType或XmlRoot属性.我错了吗?