我一直在谷歌搜索这个一个小时,但我想我没有使用正确的词,因为我找不到一个非常简单的例子,我正在尝试做什么。人们总是在样本中使用像List或派生对象这样的复杂结构。
我想要做的就是将名为SuperFile
的主要对象XMLSerialize到一个文件中。此SuperFile
类包含2个成员,这2个成员未序列化,因此生成的XML文件为空(仅包含标题)。
这是我的代码,我做错了什么?
SuperFile
public class SuperFile
{
private NetworkInfo _networkInfo;
private Planification _planification;
public NetworkInfo NI
{
get
{
return _networkInfo;
}
}
public Planification Planif
{
get
{
return _planification;
}
}
}
NetworkInfo和Planification是非常普通的类,主要是双成员,如果我愿意,它们可以完全自行序列化。但现在,我希望它们在SuperFile对象内部进行序列化。
最后,这是我的序列化代码
public void Save(string strFilename)
{
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(ExoFile));
TextWriter WriteFileStream = new StreamWriter(strFilename);
x.Serialize(WriteFileStream, this);
WriteFileStream.Close();
}
如果我把它放在SuperFile中,它会被序列化,但另外两个成员会被跳过。我认为它是序列化的,因为它不是一个复杂的类型...
public int _nDummy;
希望它清楚!
谢谢!
答案 0 :(得分:2)
XMLSerializer有一些限制,其中一个是需要一个setter。 (它也没有序列化私有字段,索引器......)。这不是一个明显的问题,过去让我摸不着头脑。)
这是一个有关详细信息的答案 - Why isn't my public property serialized by the XmlSerializer?