2014-04-30 3 views
0

리플렉션을 사용하면 단일 어셈블리 (예 : How to get all classes in current project using reflection?) 내에서 클래스 목록을 찾을 수 있다는 것을 알고 있습니다.파일 디렉토리의 공용 클래스 찾기

주어진 디렉토리 내의 공용 클래스에서만이 작업을 수행 할 수 있습니까?

var types = new List<Type>(); 

var paths = Directory.GetFiles("directoryPath", "*.dll", SearchOption.TopDirectoryOnly); 

foreach(var path in paths) 
{ 
    types.AddRange(Assembly.LoadFrom(path).GetTypes()); 
} 

GetTypes 방법을 지정할 필요가 없습니다 default.So에 의해 BindingFlags.PublicBindingFlags.Instance을 사용

+1

"* 디렉토리 *"란 무엇입니까? 시스템의 실제 폴더를 언급하고 있습니까? –

+0

예를 들어, 내 프로젝트에는 "fun_classes"라는 디렉토리가 있습니다.이 디렉토리에는 테이블 생성을위한 SQL 클래스 더미가 있습니다. 나는 그 디렉토리를 조사하고 클래스 이름을 추출하려고 할 것입니다 - 비록 모든 디렉토리에 똑같이 적용될 수 있습니다. – Nodoid

+0

포함 된 링크에 실제로 공개 수업을 찾는 답변이 포함되어 있으므로 내 대답을 삭제했습니다 – Sayse

답변

1

난 당신이 이런 식으로 작업을 수행 할 수 있도록하는 경우, 하나 이상의 어셈블리를 포함하는 디렉토리를 의미 가정 BindingFlags 매개 변수가 추가로 필요합니다.

+0

완벽하게 - 고마워요. – Nodoid

관련 문제