Dyanamic是否可以对XML进行反序列化?

时间:2015-11-09 12:55:12

标签: c# .net xml serialization xml-deserialization

我有一个可序列化的类

[XmlRoot("p")]
public class BatchField
{
    private string _type;
    private string _value;


    [XmlAttribute("type")]
    public string Type
    {
        get { return _type; }
        set { _type = value; }
    }

    [XmlAttribute("value")]
    public string Value
    {
        get { return _value; }
        set { _value = value; }
    }
}

[XmlRoot("Batch")]
public class Batch
{


    private Collection<BatchField> _p;

    [XmlElement]
    public Collection<BatchField> P
    {
        get { return _p; }
        set { _p = value; }
    }

    public Batch()
    {
        _p = new Collection<BatchField>();
    }


}

我能够序列化和序列化它。在序列化后,它生成以下XML。这个XML很好,并且能够成功地对它进行序列化。

<?xml version="1.0" encoding="utf-8"?>
<Batch>
  <P type="Test" value="113" />
  <P type="Test1" value="113" />
  <P type="Test2" value="113" />
  <P type="Test3" value="113" />
  <P type="Test4" value="113" />
  <P type="Test5" value="113" />
</Batch>

现在我的问题是

我想让这个P动态化。在某些情况下,它可以是Scanner,或者在某些情况下可以是Codec。如果我改变我的批次类,我将能够对这个类进行DE序列化,没有任何问题。但是我希望用相同的类结构来做...命名没有变化......有可能吗?或者我的方向错了?如果有可能请提供一些提示......

摘要

我希望在以下给定批次类的XML结构下进行DE序列化。

<?xml version="1.0" encoding="utf-8"?>
    <Batch>
      <Scanner type="Test" value="113" />
      <Scanner type="Test1" value="113" />
      <Scanner type="Test2" value="113" />
      <Scanner type="Test3" value="113" />
      <Scanner type="Test4" value="113" />
      <Scanner type="Test5" value="113" />
    </Batch>

我对这个概念有点新鲜。

先谢谢 SB

0 个答案:

没有答案