簡體   English   中英

如何僅序列化對象ID

[英]How to serialize only objects id

我有兩節課

[Serializable]
public class SimpleClass
{
    public ComplexClass Parent { get; set; }
}

public class ComplexClass
{
    public Guid Id { get; set; }
    // Lots of stuff
}

... 
// and somewhere    
public static List<ComplexClass> ClassesList;

如何序列化SimpleClass以便從復雜類中僅保存Guid 之后如何反序列化? 假設我已經有了ComplexClass集合, ComplexClass id選擇一個即可。

我正在使用XmlSerializer進行序列化

包括名稱空間System.Xml.Serialization,並在要在序列化中排除的字段或屬性上添加屬性[XmlIgnore]。

當然可以使用ISerializable進行自定義序列化,但是如果您想使其簡單,則可以使用以下方法:

public class SimpleClass
{
    [XmlIgnore]
    public ComplexClass Parent { get; set; }

    public Guid ComplexClassId { 
        get { return Parent.Id; } 
        set { Parent = new ComplexClass(value); } 
    }
}

或者只是使用XmlIgnore在ComplexClass中標記不需要的字段。


我已根據LB的評論將答案更改為使用XmlIgnore而不是NonSerialized ,因為我認為它仍然為Andypopa添加了一些信息,所以將答案留在此處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM