同じ構造を持つ 2 つのクラス ツリーがあります。ある構造体の新しいクラス オブジェクトを、その型から作成し、他の構造体の対応するクラスの属性を使用して作成したいと考えています。
ここで私の制御構造のクラス:
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 オブジェクトは生成されたコードであるため、触れないでください。
- 複数の値メンバーを持つことができます