2013-04-30 3 views
0

DLL에서 공용 메서드 목록을 가져와야합니다. Reflection 사용 및 LoadExceptions 다루는 몇 가지 게시물을 보았다. 이것은 내 상황에서 작동하지 않는 것 같습니다. 예외를 포착하고 e.Types를 사용하려고하면 어셈블리 내에서 3 가지 유형 중 1 가지를 얻습니다. 이미 모든 메서드, 매개 변수 등을 알고 있습니다. 필요한 것은 어셈블리 내에 나열된 클래스 목록을 얻는 것입니다.DLL에서 공용 메서드 목록 가져 오기

asm.GetTypes 이외의 다른 방법이 있습니까?

+3

GetTypes는 올바른 방법입니다. private/static/nested/etc 클래스를 원할 경우 BindingFlags를 지정해야합니다. 코드를 공유하면 사람들이 귀하를 도울 수 있습니다. – EricLaw

+6

1) 개선을 제안 할 수 있도록 사용중인 코드를 게시 할 수 있습니까? 2) public 타입만을 원하기 때문에'GetExportedTypes'에 관심이있을 수 있습니다. 3) 질문 제목은 당신이 방법을 원한다는 것을 나타내지 만 실제 질문은 유형에 관한 것으로 보입니다. 정렬하여 편집하십시오. – vcsjones

답변

1

좋아, 나는 그것을 발견했다. 이 조합은 의존성을 처리 할 필요없이 모든 클래스의 목록을하기 위해 노력 :

Assembly assembly = Assembly.LoadFrom(filename); 
Type[] types = assembly.GetTypes(); 

이 난 후였다 정말 무엇을하는 나에게 유형의 목록을 가져옵니다. 나는 아무것도 실행하지 않으려 고 모든 유형의 목록을 가져옵니다.

관련 문제