簡體   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