xml序列化与元素的通用方法。

时间:2013-10-11 19:14:53

标签: c# xml xml-serialization

我正在尝试序列化代码,因此结果可能如下所示。

<BOX>
    <COMMAND name= "Person">
        <PARAMS>
            <NAME>TOM</NAME>
            <LASTNAME>MILL</LASTNAME>
        </PARAMS>
    </COMMAND>
<PIN> 000000 </PIN>
</BOX>

但结果也可以是

<BOX>
    <COMMAND name= "Item">
        <PARAMS>
            <ITEM>TOY</ITEM>
            <PRICE>MILL</PRICE>
            <NUM>111</NUM>
        </PARAMS>
    </COMMAND>
<PIN> 000000 </PIN>
</BOX>

改变之一是<PARAMS>元素。我想创建一个可以“回收”的类结构

public class Box
{
    public class Command
    {
        [XmlAttribute]
        public string name;

        public Object PARAMS { get; set; }//<--- HERE
    }
}

我希望PARAMS是一个未定义的类型,可能会调用其中一个类

public class Person:Box
{
    public string LastName { get; set; }
    public string FirstName { get; set; }
}

 public class Item:Box
 {
     public string ItemName { get; set; }
     public string Info { get; set; }
 }

这是我的代码

BOX AddPerson = new BOX ();
Person person1 = new Person();
BOX.Command hey = new BOX.Command();

AddPerson.PIN= "000000";
hey.name = "AddPerson";

person1.FirstName = "TOM";
person1.LastName = "MILL";

hey.PARAMS = person1; //<<--THIS PART I want to be able to assign Person or Item

AddPerson.COMMAND = hey;

Console.WriteLine();
Console.ReadLine();
serializer.Serialize(textWriter, AddPerson);
Console.WriteLine(textWriter.ToString());

我想看看是否有更好的方法来实现这个想法。

0 个答案:

没有答案