それは本当に難しいです。どうしてもランタイムクラスとしてそれをやりたいのなら、などを見る必要がありますTypeBuilder
。率直に言って、あなたがすでにそれをよく知っているか、これが本当に重要でない限り、それはおそらく価値がありません。重要なこと:。を除いて、そのようなオブジェクトに対して実際にコーディングすることはできませんobject
。
最善の策は、ある種のDOM(など)を使用XmlDocument
しXElement
てデータを読み取ることですが、おそらくにデータを入力しDataTable
ます。私はDataTable
通常のコードの大ファンではありませんが、それは存在し、このシナリオにうまく適合します。
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
DataTable table = new DataTable();
foreach(XmlElement child in doc.DocumentElement.SelectNodes("column"))
{
table.Columns.Add(child.InnerText, ParseType(child.GetAttribute("Type")));
}
....
static Type ParseType(string type)
{
switch(type)
{
case "String": return typeof(string);
case "Int32": return typeof(int);
default: throw new NotSupportedException(type ?? "(null)");
}
}