我有两个班级
[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
es的集合,只需要通过id选择一个。
我正在使用XmlSerializer
进行序列化
答案 0 :(得分:1)
包含命名空间System.Xml.Serialization并在要在序列化中排除的字段或属性上添加属性[XmlIgnore]。
答案 1 :(得分:0)
当然可以使用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添加了一些信息。