繁体   English   中英

C#解决XmlSerializer.Deserialize陷阱?

[英]C# work around for XmlSerializer.Deserialize pitfall?

我只是想知道是否存在使用XmlSerializer.Deserialize()反序列化私有字段/属性的良好解决方法?

当前,我将XML反序列化为具有所有公共属性的简单的一次性类型,然后加载具有私有属性的复杂类型,如下所示:

ComplexType complex = new ComplexType(SimpleType);

而ComplexType的构造函数如下所示:

public ComplexType(SimpleType simpleType){
    this.Property1 = simpleType.Property1;
    this.Property2 = simpleType.Property2;
    .....

}

有人有更好的方法吗?

您可以使ComplexType实现IXmlSerializable接口。 这公开了用于序列化和反序列化的方法,因此您可以在这些方法中填充复杂类型的私有成员。

在此处出MSDN: http : //msdn.microsoft.com/zh-cn/library/system.xml.serialization.ixmlserializable.aspx ,该示例显示了对序列化私有字段的IXmlSerializable接口的实现。

请注意,另一个选择是使用DataContractSerializer (.NET 3.0)-这支持私有成员(属性或字段)的序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM