유형의 파생 유형 찾기
많은 경우 주어진 유형의 파생 유형을 결정해야 합니다. 그러나 로드된 어셈블리의 모든 유형을 반복하고 할당 가능성을 확인하는 등의 기본 접근 방식은 비효율적일 수 있습니다.
Reflection 사용
보다 성능이 뛰어난 솔루션은 다음을 사용하는 것입니다. 파생 유형을 검색하기 위한 리플렉션입니다. 다음은 LINQ 기반 접근 방식입니다.
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from assemblyType in domainAssembly.GetTypes() where type.IsAssignableFrom(assemblyType) select assemblyType).ToArray();
이 방법은 모든 어셈블리를 반복하고 지정된 유형이 각 어셈블리 유형에 할당 가능한지 확인합니다.
Fluent 버전
가독성을 높이기 위해 유창한 버전:
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(assemblyType => type.IsAssignableFrom(assemblyType)) .ToArray();
고려 사항
위 내용은 리플렉션을 사용하여 주어진 유형의 모든 파생 유형을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!