我想獲得一個對象類型的屬性值。這裏是我的代碼:如何獲得無類型對象的值?
Type tip = Type.GetType(pair.Key.GetType().ToString());
object uretilenNesne = Activator.CreateInstance(tip);
uretilenNesne有正確的類型,但我想訪問uretilenNesne的屬性值。你有什麼主意嗎?
KR,
Dakmaz
我想獲得一個對象類型的屬性值。這裏是我的代碼:如何獲得無類型對象的值?
Type tip = Type.GetType(pair.Key.GetType().ToString());
object uretilenNesne = Activator.CreateInstance(tip);
uretilenNesne有正確的類型,但我想訪問uretilenNesne的屬性值。你有什麼主意嗎?
KR,
Dakmaz
你知不知道你想在編譯時訪問屬性的名稱?如果是,那麼你可以使用dynamic
數據類型:如果您知道運行時屬性的名稱
Type tip = Type.GetType(pair.Key.GetType().ToString());
dynamic uretilenNesne = Activator.CreateInstance(tip);
var x = uretilenNesne.someProperty;
,你可以使用反射:Type.GetProperty將返回屬性與給定的簽名,可以可通過PropertyInfo.GetValue或SetValue進行訪問。例如:
Type tip = Type.GetType(pair.Key.GetType().ToString());
object uretilenNesne = Activator.CreateInstance(tip);
PropertyInfo pinfo = tip.GetProperty("someProperty");
object x = pinfo.GetValue(uretilenNesne, null);
如果你不知道屬性的名稱,使用Type.GetProperties獲得所有屬性的數組。
+1或者,如果你知道類型你期待在編譯時,你可以投射Activator.CreateInstance的結果 – 2011-03-29 08:20:15
你或許應該替換'Type.GetType(pair.Key.GetType()的ToString());'和'pair.Key.GetType();' – 2011-03-29 08:09:47