如何只序列化对象id
本文关键字:对象 id 序列化 | 更新日期: 2023-09-27 18:11:09
我有两个类
[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
e,只需要按id选择一个。
我使用XmlSerializer
进行序列化
包含命名空间System.Xml.Serialization,并在您希望在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中不需要的字段。
我已经根据L.B.的评论将我的答案改为使用XmlIgnore
而不是NonSerialized
。把答案留在这里,因为我认为它仍然为Andypopa添加了一些信息。