我用entity.GetType().GetFields(BindingFlags.NonPublic)无法取得类对象的私有成员,是什么原因呢?在MSDN.Type.GetFields中,有下面这一个注意事项
“如果请求的类型是非公共类型,并且调用方不具有 ReflectionPermission 来反射当前程序集之外的非公共对象,则此方法返回空引用”但不知道要怎样写才能满足这个条件,请大侠们帮帮忙!

解决方案 »

  1.   

    entity.GetType()如果能取得的话,还又什么安全可言
    你可以用别人的dll文件,然后你可以获得里面所有的属性,方法,事件....
    我觉得就没有什么版权而言了
      

  2.   

    FieldInfo fieldinfo = mytype.GetField("FieldName", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
      

  3.   

    try:entity.GetType().GetFields(BindingFlags.Instance|BindingFlags.GetProperty|BindingFlags.NonPublic)
    see:
    http://community.csdn.net/Expert/TopicView3.asp?id=5722243
      

  4.   

    To lovefootball(蟑螂(生活就是扯淡--做人要放低姿态)) :
      谢谢,但我要的是所有的私有成员,而不是具体的某一个成员!
    To BearRui(AK-47):
      谢谢,你的那几个参数之前我都试了,还是不行,我怀疑是MSDN上面那个注意事项的问题!
      

  5.   

    这个问题也困惑我。后来发现参数这样写就可以取到BindingFlags.NonPublic | BindingFlags.IgnoreCase | BindingFlags.Instance忽略大小写非常重要