2010-10-16 30 views
2
var mystring = "MyCompany.MyType.Localization.Strings.MyString" 

在C#中,有沒有辦法,我可以填滿它,使得加載從變量字符串的字符串類型(如可變的變量,並且反射)

var abc = GetReflectedValue(mystring); 

是反射的唯一途徑? (怎麼樣?)或者更有效的方法?

+1

的[有一種簡單的方式來獲得C#類型名稱類型的對象(可能重複http://stackoverflow.com/questions/3929026/is-there-an-easy從C類型名稱中獲得類型 - 對象) – BrunoLM 2010-10-16 02:11:05

+0

你究竟想在這裏做什麼?加載基於區域的字符串? – 2010-10-16 05:27:19

+0

我有一個字符串「MyCompany.MyClass」,它是靜態的,它有一個名爲「Foo」的屬性。我想調用「MyCompany.Class」的「Foo」屬性。我將所有這些都作爲用戶輸入提供,而不是代碼。 – user477470 2010-10-16 05:46:27

回答

0

這不是100%清楚你想要做什麼。你的意思是隻給它的字符串類型名稱創建一個對象的實例?如果是這樣,使用Activator.CreateInstance

var item = Activator.CreateInstance(Type.GetType(mystring)); 
+0

Type.GetType()一直說空,看起來像我的共享的DLL可能不會被加載。我的程序集是否需要加載才能工作? – user477470 2010-10-16 04:54:25