Compilation.GetTypeByMetadataName(String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
정식 CLR 메타데이터 이름을 사용하여 컴파일 어셈블리 및 참조된 모든 어셈블리(extern 별칭을 통해서만 참조할 수 있는 어셈블리 제외) 내의 형식을 가져옵니다. 이 조회는 다음 순서를 따릅니다.
- 컴파일의 어셈블리에 형식이 있으면 해당 형식이 반환됩니다.
-
다음으로, 핵심 라이브러리(어셈블리 참조를 정의
System.Object
하고 없는 라이브러리)가 검색됩니다. 해당 형식이 있으면 해당 형식이 반환됩니다. - 마지막으로, 참조된 모든 비-extern 어셈블리가 검색됩니다. 제공된 메타데이터 이름과 일치하는 형식이 하나만 있으면 해당 단일 형식이 반환됩니다. 이 검사에서는 접근성이 무시됩니다.
public:
Microsoft::CodeAnalysis::INamedTypeSymbol ^ GetTypeByMetadataName(System::String ^ fullyQualifiedMetadataName);
public Microsoft.CodeAnalysis.INamedTypeSymbol GetTypeByMetadataName (string fullyQualifiedMetadataName);
public Microsoft.CodeAnalysis.INamedTypeSymbol? GetTypeByMetadataName (string fullyQualifiedMetadataName);
member this.GetTypeByMetadataName : string -> Microsoft.CodeAnalysis.INamedTypeSymbol
Public Function GetTypeByMetadataName (fullyQualifiedMetadataName As String) As INamedTypeSymbol
매개 변수
- fullyQualifiedMetadataName
- String
반환
형식을 찾을 수 없거나 조회 중에 모호성이 있는 경우 Null입니다.
설명
VB에는 extern 별칭의 개념이 없으므로 참조된 모든 어셈블리를 고려합니다.
C#에서 핵심 라이브러리가 extern 어셈블리로 참조되면 검색됩니다. 다른 모든 별칭이 지정된 어셈블리는 검색되지 않습니다.
제공된 메타데이터 이름과 일치하는 형식을 검색할 때 현재 어셈블리에 대한 접근성은 무시되기 때문에 참조된 여러 어셈블리가 동일한 형식 기호를 정의하는 경우(사용자가 BCL 또는 다른 원본에서 잘 알려진 형식을 복사할 때 자주 발생) 이 API는 해당 기호 중 하나를 제외한 모든 기호가 현재 어셈블리의 사용자 작성 코드에 액세스할 수 없는 경우에도 null을 반환합니다. 모호성 확인을 세밀하게 제어하려면 대신 사용하고 GetTypesByMetadataName(String) 필요한 기호에 대한 결과를 필터링하는 것이 좋습니다.
어셈블리에는 여러 모듈이 포함될 수 있습니다. 각 어셈블리 내에서 해당 어셈블리의 모듈 목록에서 모듈의 위치에 따라 검색이 수행됩니다. 어셈블리의 한 모듈에서 일치 항목이 발견되면 해당 어셈블리 내에서 더 이상 모듈을 검색하지 않습니다.
형식 전달자는 무시되며 TypeForwardAttribute가 작성된 어셈블리의 일부로 간주되지 않습니다.
각 중첩된 수준에서 모호성이 검색됩니다. 예를 들어 요청된 경우 여러 A
개 있지만 그 중 하나만 중첩된 형식을 갖는 B
경우 A+B
조회는 모호한 것으로 간주되고 null이 반환됩니다.
적용 대상
.NET