对象及其包含对象的序列化

时间:2010-05-18 04:46:30

标签: c# xml-serialization

有一个主类有2个子类(每个类代表单独的实体),所有类都需要序列化。我该怎么办? 我的要求是当我对MainClass进行serelize时,我应该为每个子类和主类获取xml。在此先感谢...如果我的方法不正确...也要纠正...

以下给出了......

class MainClass
{
   SubClass1 objSubclass1 = null;   
   SubClass2 objSubclass2 = null;
   public MainClass()
   {
     objSubclass1 = new SubClass1();
     objSubclass2 = new SubClass2();
   }
   [XmlElement("SubClass1")]
   public SubClass1 SubClass1 {get {return objSubclass1;} }
   [XmlElement("SubClass2")]
   public SubClass2 SubClass2 {get {return objSubclass2;} }
}

Class SubClass1
{
  Some properties here...
}

Class SubClass2
{
  Some properties here...
}

2 个答案:

答案 0 :(得分:2)

XML序列化要求对属性进行读/写。因此,您需要实施get set

如果你不喜欢这个限制,那么你可以实现IXmlSerializable(在链接页面上有一个例子),但是对于我想的这样一个简单的要求,它可能比它的价值更麻烦。

答案 1 :(得分:1)

要使用XML序列化来处理属性,您需要同时拥有属性的getter和setter。

此外,通常在使用术语子类时,它表示从基类派生的类。这似乎不是这里的情况所以你的例子有点令人困惑。

如果您确实需要序列化子类,其中属性的静态类型是基类,请参阅XmlIncludeAttribute