2009-10-23 2 views
1

제 질문은 개념적으로 매우 비슷합니다. this question. 그러나 메서드에서 특정 인터페이스를 구현하는 주어진 네임 스페이스의 모든 클래스를 프로그래밍 방식으로 식별하여 (각 개체를 List에 추가 할 수 있도록) 어떻게 Stripes Framework (Java에서)가 모든 방식을 찾는 것과 유사한 지 궁금합니다. ActionBean 인터페이스를 구현하는 클래스코드에서 인터페이스의 모든 구현을 어떻게 찾을 수 있습니까?

코드 샘플은 좋지만 다른 것이 필요한 경우 올바른 방향을 가리킬 필요가 있습니다.

+0

이 질문은 관련 http://stackoverflow.com/questions/1304882/에서 찾을 수 있습니다. –

답변

1

리플렉션, 특히 Type.IsAssignableFrom을 사용하여 어셈블리의 모든 유형을 확인할 수 있습니다.

이것은 네임 스페이스의 모든 유형을 찾는 것과는 다릅니다. 어려운 부분은 .NET에서 네임 스페이스에 특별한 것이 없으므로 여러 어셈블리에서 네임 스페이스를 사용할 수 있다는 것입니다. 이것은 실제 형식 이름의 접두사 일 뿐이지 만 IL에서는 "Int32"가 포함 된 "System"네임 스페이스가 아니며 단일 System.Int32 유형입니다.

어셈블리의 모든 유형을 검색하고 유형 이름이 네임 스페이스 이름으로 시작하는지 확인한 다음 인터페이스 유형이 해당 유형에서 할당 가능한지 확인하십시오. 그렇다면 인터페이스를 구현합니다. 해당 네임 스페이스 내의 형식을 정의하는 모든 어셈블리에 대해 반복합니다.

관련 문제