关于反射的无法获取属性值的问题,在线等待!!!!!
我通过反射想获取一个类的非public的属性值, 其中obj为我需要的类的一个实例。
Type objType =obj.GetType();
MemberInfo [] memberInfo=
objType.GetMembers (BindingFlags.Instance|BindingFlags.GetProperty|BindingFlags.NonPublic);
这样我可以得到我想要的VisaualComponent的属性。但是,PropertyInfo ptinfo = objType.GetProperty(“VisualComponent”, BindingFlags.NonPublic);
却提示我返回为空值,我怎么得不到该属性呢。
图片见 :http://one.fsphost.com/zyjl/CSDN/Snap1.jpg
红线处的 ptinfo返回为空,但是可以进行到这一步,mbi已经获取到该属性。
------解决方案--------------------帮顶
------解决方案--------------------如果是属性的话,应该使用GetProperties,而不是GetMembers吧
------解决方案--------------------不懂,学习中
------解决方案--------------------这样试试看可以吗?
PropertyInfo ptinfo = objType.GetProperty(“VisualComponent”, BindingFlags.Instance|BindingFlags.GetProperty|BindingFlags.NonPublic);
------解决方案--------------------试下
BindingFlags.Public | BindingFlags.Instance
------解决方案--------------------这样就可以了:
PropertyInfo ptinfo = objType.GetProperty(“VisualComponent”, BindingFlags.NonPublic | BindingFlags.Instance);
------解决方案--------------------“VisualComponent”这里的引号 "
------解决方案--------------------应该是GetProperty吧
------解决方案--------------------我这样可以取到值啊
PropertyInfo ptinfo = objType.GetProperty( "VisualComponent ",
BindingFlags.Instance | BindingFlags.GetProperty |
BindingFlags.NonPublic);
Console.WriteLine(ptinfo.GetValue(obj,null));
------解决方案--------------------学习