Controlling order of serialization in C#

倾然丶 夕夏残阳落幕 提交于 2019-11-26 21:13:34

问题


I'm using an XmlSerializer to serialize an object and write it to a file. I've had quite a bit of success with the serializer doing what I want it to do in terms of nesting elements and what is serialized as elements vs attributes. Unfortunately, I've run into a problem where I need one member of a class to serialize before another. Elsewhere it's worked for me that whatever is declared first gets serialized first, but in this instance I'm not having so much success with that. Is there any way to manually control the order in which things are serialized?


回答1:


[XmlElementAttribute(Order = 1)] 
public int Field1 {...} 

[XmlElementAttribute(Order = 2)] 
public int Field2 {...} 

Catch: You must specify the Order for all of your members.

Be careful - deserialization will only work if the properties in the XML document are in the same order. Otherwise it will silently ignore out-of-order properties.




回答2:


XmlElementAttribute.Order, which controls "the explicit order in which the elements are serialized or deserialized".



来源:https://stackoverflow.com/questions/3373529/controlling-order-of-serialization-in-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!