我想在我的XML文檔中基於一個字符串在LINQ-to-XML查詢中動態創建某種類型的對象。我已經習慣了能夠動態地創建任何類型的PHP和JavaScript的目的是通過簡單地能夠寫類似:是否可以根據表示其類型的字符串值創建對象實例?
$obj = new $typeName();
理想情況下,我希望能夠做這樣的事情:
List<someObj> = (from someObjs in XMLfile
select new someObj()
{
Name = (string)someObjs.Element("name"),
NestedObj = new someObjs.Element("nestedObj").Element("type")()
{
NestedName = (string)someObjs.Element("nestedObj").Element("name")
}
}).ToList();
我只是不知道如何做到這一點,而不抓住當前正在執行的程序集。
需要注意的事項:如果類型不在mscorlib或ExecutingAssembly中,Afaik'typeName'也必須聲明程序集名稱。 – dtb 2010-08-21 17:39:43
您可以調用'Type.GetType(string)',然後使用該類型與另一個Activator.CreateInstance重載。 – 2010-08-21 17:59:40
@Jim:將您的建議添加到答案中。 – 2010-08-21 18:04:28