可能重复:
如何动态读取 C# 类的属性?
我必须只使用他们的名字字符串来获取类成员的值。我想我必须使用反射,但我不确定如何使用。你能帮助我吗?
MemberInfo member = typeof(MyClass).GetMember("membername");
如果您知道要查找的成员类型,则可以使用.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);
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);
}
}