다음을 통해 공유


Compilation.GetTypeByMetadataName(String) 메서드

정의

정식 CLR 메타데이터 이름을 사용하여 컴파일 어셈블리 및 참조된 모든 어셈블리(extern 별칭을 통해서만 참조할 수 있는 어셈블리 제외) 내의 형식을 가져옵니다. 이 조회는 다음 순서를 따릅니다.

  1. 컴파일의 어셈블리에 형식이 있으면 해당 형식이 반환됩니다.
  2. 다음으로, 핵심 라이브러리(어셈블리 참조를 정의 System.Object 하고 없는 라이브러리)가 검색됩니다. 해당 형식이 있으면 해당 형식이 반환됩니다.
  3. 마지막으로, 참조된 모든 비-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이 반환됩니다.

적용 대상