我正在尝试序列化代码,以便结果看起来像这样。
<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());
我想看看是否有更好的方法来实现这个想法。