C# 如何在容器对象内XMLSerialize成员对象
我已经在谷歌上搜索了一个小时了,但我觉得我用的词不对,因为我找不到一个简单的例子来说明我在做什么。人们总是在样本中使用复杂的结构,如列表或派生对象 我所要做的就是将名为C# 如何在容器对象内XMLSerialize成员对象,c#,.net,serialization,xml-serialization,C#,.net,Serialization,Xml Serialization,我已经在谷歌上搜索了一个小时了,但我觉得我用的词不对,因为我找不到一个简单的例子来说明我在做什么。人们总是在样本中使用复杂的结构,如列表或派生对象 我所要做的就是将名为superfle的主要对象XML序列化到一个文件中。该superfle类包含2个成员,并且这2个成员未序列化,因此生成的XML文件为空(仅包含头) 这是我的代码,我做错了什么 超细 public class SuperFile { private NetworkInfo _networkInfo;
superfle
的主要对象XML序列化到一个文件中。该superfle
类包含2个成员,并且这2个成员未序列化,因此生成的XML文件为空(仅包含头)
这是我的代码,我做错了什么
超细
public class SuperFile
{
private NetworkInfo _networkInfo;
private Planification _planification;
public NetworkInfo NI
{
get
{
return _networkInfo;
}
}
public Planification Planif
{
get
{
return _planification;
}
}
}
NetworkInfo和Planification是一个非常普通的类,大多数是双成员的,如果我愿意的话,它们可以自己完全序列化。但是现在,我希望它们在Superfle对象内部序列化
最后,这里是我进行序列化的代码
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();
}
如果我把它放在Superfle中,它会被序列化,但会跳过另外两个成员。我认为它可以序列化,因为它不是一个复杂的类型
public int _nDummy;
希望一切都清楚
谢谢 XMLSerializer有一些限制,其中之一是需要setter。(它也不会序列化私有字段、索引器..)。这不是一个明显的问题,过去让我挠头:)
这里有一个带有一些细节的答案-尝试在属性(NI和Planif)上设置一个setter;就是这样!谢谢NDJ。你能写一个完整的答案并解释原因吗?完成-很高兴它有帮助!