2009-04-20 61 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);