可能重复:
How can I read the properties of a C# class dynamically?
我必须使用其名称的字符串来获取类成员的值。我想我必须使用反射,但我不确定如何。你能救我吗?
答案 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");
如果您知道自己想要的会员类型,可以使用.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);