如何获取具有其姓名字符串的类成员值?

时间:2013-01-03 13:47:35

标签: c# .net reflection

  

可能重复:
  How can I read the properties of a C# class dynamically?

我必须使用其名称的字符串来获取类成员的值。我想我必须使用反射,但我不确定如何。你能救我吗?

2 个答案:

答案 0 :(得分:7)

public class Foo
{
  public string A { get; set; }
}
public class Example
{
  public void GetPropertyValueExample()
  {
    Foo f = new Foo();
    f.A = "Example";
    var val = f.GetType().GetProperty("A").GetValue(f, null);
  }
}

答案 1 :(得分:7)

MemberInfo member = typeof(MyClass).GetMember("membername");

GetMember reference.

如果您知道自己想要的会员类型,可以使用.GetMethod.GetField.GetProperty等。

如果您不知道您正在使用的类型:

var myobject = someobject;
string membername = "somemember";
MemberInfo member = myobject.GetType().GetMember(membername);

不同的成员类型有不同的获取价值的方法。对于您要做的房产:

var myobject = someobject;
string propertyname = "somemember";
PropertyInfo property = myobject.GetType().GetProperty(membername);
object value = property.GetValue(myobject, null);