基于其他人反序列化XML对象

时间:2016-07-07 23:24:30

标签: c# serialization xml-serialization

我想知道是否有一种简单的方法可以将xml文件反序列化为更大的对象,而无需再次指定每个元素。所以我希望xml元素基于相同类型的其他元素,并且只指定差异。

示例类:

ClassA
{
    [XmlElement("val1")]
    public AnySerializableObject val1;
    [XmlElement("val2")]
    public AnySerializableObject val2;
    [XmlElement("val3")]
    public AnySerializableObject val3;
}

示例XML内容:

<classA id="object1">
  <val1>anything</val1>
  <val2>whatever</val2>
  <val3>important</val3>
</classA>
<classA id="object2" template="object1">
  <val3>not really important</val3>
</classA>

简单序列化产生两个ClassA对象:

object1: val1 = anything, val2 = whatever, val3 = important  
object2: val1 = null, val2 = null, val3 = not really important

是否有一种简单的方法来读取xml文件,以便object2使用未指定的object1的值?

所以它是

object2: val1 = anything, val2 = whatever, val3 = not really important

或者我是否必须编写自己的Serializer,这似乎相当复杂?

0 个答案:

没有答案