如何获得无类型对象的值?

时间:2011-03-29 07:58:50

标签: c# asp.net reflection

我想获得一个对象类型的属性值。这是我的代码:

 Type tip = Type.GetType(pair.Key.GetType().ToString());

  object uretilenNesne = Activator.CreateInstance(tip);

uretilenNesne的类型正确,但我想访问uretilenNesne的属性值。你有什么想法吗?

KR,

Dakmaz

1 个答案:

答案 0 :(得分:3)

  1. 您是否知道要在编译时访问的属性的名称?如果是,那么您可以使用dynamic数据类型:

    Type tip = Type.GetType(pair.Key.GetType().ToString());
    
    dynamic uretilenNesne = Activator.CreateInstance(tip);
    
    var x = uretilenNesne.someProperty;
    
  2. 如果您知道运行时的属性名称,则可以使用反射:Type.GetProperty将返回具有给定签名的属性,可以使用{{{ 3}}或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);
    
  3. 如果您不知道该属性的名称,请使用PropertyInfo.GetValue获取所有属性的数组。