2009-04-20 82 views
0

我从组件A加载程序集B我试图枚举位于装配B.访问非公共成员 - ReflectionAttribute

如何使用性ReflectionPermission来完成这项任务类型的私有成员?我在MSDN上找不到任何有用的东西。

Assembly asm = Assembly.LoadFrom("Chapter13.exe", AppDomain.CurrentDomain.Evidence); 
//AppDomain.CurrentDomain.Load("Chapter13"); 

Type t = asm.GetType("Chapter13.ProtectedBuffer"); 

MemberInfo[] members = t.GetMembers(BindingFlags.NonPublic); 

foreach (MemberInfo m in members) 
{ 
    Console.WriteLine(m.Name); 
} 

亲切的问候 PK

回答

3

除非你是在部分信任的环境中运行,你不需要ReflectionPermission。我怀疑你的问题是你没有指定静态/实例。试试这个:

MemberInfo[] members = t.GetMembers(BindingFlags.NonPublic | 
            BindingFlags.Static | 
            BindingFlags.Instance);