System.Reflection은 어셈블리의 전역 메서드를 반영하지 않습니다 (AFAIK). 어셈블리 레벨에서 루트 유형으로 시작해야합니다.System.Reflection - 리플렉션에 전역 메서드를 사용할 수 없습니다.
내 컴파일러는 전역 메서드를 사용하여 어셈블리를 생성 할 수 있으며 내 표준 부트 스트랩 lib는 일부 전역 메서드가 포함 된 dll입니다. 내 컴파일러는 System.Reflection을 사용하여 컴파일 타임에 어셈블리 메타 데이터를 가져옵니다. System.Reflection에 의존한다면 글로벌 메소드가 가능하지 않은 것 같습니다. 가장 깨끗한 솔루션은 모든 표준 메서드를 클래스 정적 메서드로 변환하는 것이지만 내 언어는 전역 메서드를 허용하고 CLR은이를 지원하지만 System.Reflection은 갭을 남깁니다.
ildasm은 전역 메서드를 잘 보여 주지만 System.Reflection 자체를 사용하지 않고 메타 데이터 및 바이트 코드로 바로 이동한다고 가정합니다.
System.Reflection 외에도 다른 모든 타사 리플렉션 또는 디스 어셈블리 라이브러리를 알고있는 사람이 있습니다. (결국 무료로 제공되는 BSD 라이센스 오픈 소스로 내 컴파일러를 릴리스 할 것이라고 가정합니다.)
해결 : 내 지식을 제외하고는 틈이 없습니다. GetModules를 지적 해 주셔서 감사합니다, 얘들 아!
그것에 나를 이길하지만 내가 실제로 그것을 시도하지 않은 것을 인정해야한다. 좋은 질문과 좋은 대답. –
@ 브라이언 : 왜 내가 그걸 해봤다고 생각하니? ;) –
당신은 문서가 정확하고보기 만해도 알 수있는 높은 수준의 힘을 가지고있을 것입니다 :) –