【发布时间】:2010-05-31 15:19:39
【问题描述】:
如何序列化这个类?
public class MyClass {
IInterface MyProperty { get; set;}
}
【问题讨论】:
-
嗨,阿伦,如果问题或答案已更新,通常会在问题或答案中添加注释,例如编辑:废话,废话,废话,因为废话废话。谢谢。
标签: c# .net xml-serialization
如何序列化这个类?
public class MyClass {
IInterface MyProperty { get; set;}
}
【问题讨论】:
标签: c# .net xml-serialization
您需要向 MyProperty 添加一个 setter,因为 Xml 序列化规则要求序列化必须能够往返,即它必须能够获取序列化的属性,然后设置反序列化的属性。
【讨论】:
正如 chibacity 所说,您需要为属性添加一个 setter。您还需要在属性中添加XmlInclude 属性以指定可能的实现类型,否则XmlSerializer 在反序列化时将不知道要实例化什么类型
【讨论】:
XmlSerializer 无法序列化接口。
如果您提前知道要处理的具体类型,那么您可以使用XmlInclude 方法。如果没有,那么已经有一些关于如何处理的讨论:
【讨论】:
像往常一样使实现 IInterface Serializable 的类能够正常工作。
【讨论】: