给定一个标记为[Serializable]
的类,我们如何知道它的成员是否会被XmlSerializer
序列化(该成员没有属性(?
例如:
[Serializable]
public class C2
{
public int x1 = 1;
private int x2 = 2;
public static int x3 = 3;
public readonly int x4 = 4;
public int Y1 { get; set; }
public static int Y2 { get; set; }
}
我们有一个类C2
,在将一个新对象C2 c = new C2()
序列化为XML字符串后,我发现只有x1
和Y1
被序列化。所以我推断:
public
字段和属性将被序列化private
字段和属性将不会序列化- CCD_ 9和CCD_
- MethodInfo将不会序列化
我的问题是,有什么准则可以知道:如果不将任何属性标记为类的成员,我们如何知道该成员是否会被序列化?
由于XML序列化不使用SerializableAttribute
,因此在类上使用或不使用[Serializable]
时,哪些属性将被序列化为XML没有区别(请参阅什么是[Serializable]以及何时应该使用它?了解使用它的原因(。
您似乎已经正确地从IntroducingXMLSerialization:中获得了序列化内容的列表
XML序列化只将对象的公共字段和属性值序列化到XML流中。XML序列化不包括类型信息。