0

我正在尝试序列化代码,以便结果看起来像这样。

<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());

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

4

0 回答 0