我有两个具有相同结构的类树。我想从类型和另一个结构的相应类的属性创建一个结构的新类对象。
这是我的控制结构类:
public class ControlBase
{
public ControlBase(string name);
string name;
}
public class ControlA : ControlBase
{
public ControlA(string name, int val) : base(name);
int val;
}
public class ControlB : ControlBase
{
public ControlB(string name, double val) : base(name);
double val;
}
xml 数据项类:
public class XMLBase
{
string name;
}
public class XMLA : XMLBase
{
int val;
}
public class XMLB : XMLBase
{
double val;
}
我有一个来自我的 xml 结构的对象列表,我的问题是:如何从我的控制结构中创建等效的对象列表。
我知道我可以做这样的事情,但我认为这不是一个干净的解决方案。
foreach (XMLBase xmlItem in xmlList)
{
if(xmlItem is XMLA)
{
XMLA toAdd = (XMLA)xmlItem;
controlList.Add(new ControlA(toAdd.name, toAdd.val));
}
if(xmlItem is XMLB)
...
}
编辑:我忘记了一些限制
- 我不应该触摸 XML 对象,因为它们是生成的代码
- 我可以有多个值成员