Jak*_*urc 1 .net xml-serialization
可能重复:
XML序列化的替换
除了旧的XmlSerializer在.Net Universe中的xml序列化世界中有什么新东西吗?
更新:这可能是更好问题的重复.
例如,它默认由WCF使用.请参阅此处进行比较.
就个人而言,我讨厌XmlSerializer不能做内部类型.DataContractSerializer没有这个问题.而且,DataContractSerializer例如,使用泛型更容易.如果要生成人类可编辑的XML格式,则可能不太理想.
正如Maxim指出的那样,它的DataContractSerializer行为与您的预期略有不同:它不会调用任何构造函数来反序列化您的对象.如果由于某种原因需要进行一些初始化,可以使用该[OnDeserializing]属性.我使用这样的模式:
[DataContract]
public MyClass
{
public MyClass()
{
Initialize();
}
[OnDeserializing]
private OnDeserializing(StreamingContext context)
{
Initialize();
}
private void Initialize()
{
// Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
同样,还有一个[OnDeserialized]属性和序列化版本.