我可以在c#中使用XmlSerializer控制某些字段的序列化吗?例如,一个名为"Type"( string )的属性将被序列化为其他东西,而不是string。提前谢谢。
发布于 2011-12-23 18:14:48
您可以通过XmlElement
/ XmlAttribute
注释控制一些事情--元素的名称,它是属性元素还是完整的XML元素,等等。如果您需要支持任何类型的复杂序列化方案,XmlSerializer
不是一个好的选择,因为它有许多限制。您最好使用DataContractSerializer
(请参阅WCF文档中的"Using Data Contracts" ),或者甚至自己编写它。
如果您只想更改序列化数据的XML类型(例如,使用自定义XML类型或名称空间),则可以使用XmlType
属性进行更改,但这只适用于您已声明的类型,而不适用于原语CLR类型(例如,您不能将字符串转换为整数或其他更复杂的类型)。
发布于 2011-12-23 18:13:25
我觉得你想要IXmlSerializable interface
你不能仅仅使用属性来控制类型。你必须使用自己的代码来序列化/反序列化这个类。该接口允许您这样做。
发布于 2011-12-23 18:35:03
您可以通过XMLIgnore控制要序列化的内容,attribue.This不会序列化用此属性修饰的属性。
YOu还可以使用XMLType来管理序列化程序如何序列化类型,但这并不意味着您可以直接影响CLR类型。
不能使用序列化更改CLR类型。
https://stackoverflow.com/questions/8619292
复制