2010-03-14 2 views
1

반사경에 어셈블리를 열 때마다이 특수한 <Module> 유형이 표시됩니다. 최근에이 유형으로 정의 된 정적 메서드가있는 어셈블리를 발견했으며이를 리플렉션을 통해 호출하려고합니다. 이것이 가능한가?무엇입니까? <Module> 어셈블리에서 입력

 
Assembly assembly = Assembly.LoadFile(assemblyPath); 
Type moduleType = assembly.GetType("<Module>"); 

위의 코드 조각은 널 (null)을 반환 hidebysig 방법은

편집 속성 privatescope

, BTW이 방법은 있습니다.

답변

2

내가 사용하는 이름의 오른쪽 양식을 찾기 위해 실험을 할 시간이 없어,하지만 당신은 어셈블리의 형식의 모든를 얻을 수 Assembly.GetTypes()를 사용하는 경우, 당신이 그런 식으로 찾을 수 있습니다. 어셈블리에는 많은 모듈이있을 수 있음을 명심하십시오. 모두를 찾으려면 Assembly.GetModules()을 사용하십시오.

+1

그것은 내가 필요로하는 영감이었습니다. 고맙습니다! 내가 찾고 있던 방법은 (전에는 들어 본 적이없는) 전 세계적인 방법이었으며 어떤 유형에도 속하지 않았습니다. 그러나 어떤 이유로 리플렉터는 ''유형으로 표시하기로 결정했습니다. (| BindingFlags.Public | BindingFlags.Static BindingFlags.NonPublic) 제가 조립을 사용할 때 Btw는의 유형이 표시되지 않습니다 나는 assembly.GetModules를 (사용 방법) [0] .GetMethods를 가져올 수 있었다 .GetTypes() 또는 ILDasm을 사용할 때. – madaboutcode

관련 문제