如何获得有他们名字的串类成员的值? [英] How to get class members values having string of their names?

查看:156
本文介绍了如何获得有他们名字的串类成员的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:结果
我怎么能读一个C#类的属性动态?






我得只使用其名称的字符串类成员的值。我想我必须使用反射,但我真的不知道如何。你能帮助我吗?


解决方案

 的MemberInfo成员= typeof运算(MyClass的).GetMember(成员名字); 

GetMember参考。



如果你知道你要找的成员类型,可以使用 .GetMethod .GetField .GetProperty



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

  VAR为MyObject = someobject; 
串membername =somemember;
的MemberInfo成员= myobject.GetType()GetMember(membername)。



不同的会员类型有不同的方法来获取值。对于一个属性,你会怎么做:

  VAR为MyObject = someobject; 
串PROPERTYNAME =somemember;
的PropertyInfo财产= myobject.GetType()的getProperty(membername)。
对象值= property.GetValue(为MyObject,NULL);


Possible Duplicate:
How can I read the properties of a C# class dynamically?

I have to get values of class members using strings of their names only. I think I have to use Reflection but I am not realy sure how to. Can you help me?

解决方案

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

GetMember reference.

If you know type of member you're looking for, you can use .GetMethod, .GetField, .GetProperty, etc.

If you don't know the type you are working with:

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

Different member types have different means to getting the value. For a property you would do:

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

这篇关于如何获得有他们名字的串类成员的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆