序列化类时,如果注释了XmlIgnore属性,则会出错。当我取消注释XmlIgnore属性时,它工作正常。谁能告诉我为什么一个属性不能序列化?
答案 0 :(得分:1)
通常情况下,它会在异常中非常清楚地告诉您原因 - 特别注意InnerException;但总结一下:
要使自定义类型SomeType
可以通过XmlSerializer
进行序列化(作为根对象或通过属性,即public SomeType MemberName {get;set;}
)
public
object
是不行的;例如SomeType
的子类型必须提前公布,通常是通过{{1 }})[XmlInclude(...)]
),或通过abstract
定义具体实施使用[XmlInclude(...)]
会从考虑中删除类型,因此可以避免不符合xml的类型。您也可以针对这些案例尝试[XmlIgnore]