6

可能重复:
如何动态读取 C# 类的属性?

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

4

2 回答 2

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

GetMember 参考。

如果您知道要查找的成员类型,则可以使用.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);
于 2013-01-03T13:53:11.960 回答
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);
  }
}
于 2013-01-03T13:52:24.080 回答