Compilation.GetTypeByMetadataName(String) メソッド

定義

コンパイルのアセンブリ内の型と、その標準 CLR メタデータ名を使用して参照されるすべてのアセンブリ (extern エイリアスを介してのみ参照できるアセンブリを除く) を取得します。 このルックアップは、次の順序に従います。

  1. コンパイルのアセンブリで型が見つかった場合は、その型が返されます。
  2. 次に、コア ライブラリ (アセンブリ参照を System.Object 定義し、アセンブリ参照を持たないライブラリ) が検索されます。 型が見つかった場合は、その型が返されます。
  3. 最後に、参照されているすべての非外部アセンブリが検索されます。 指定されたメタデータ名に一致する型が 1 つだけ見つかった場合、その 1 つの型が返されます。 このチェックでは、アクセシビリティは無視されます。
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 を返します。ただし、これらのシンボルのうち 1 つを除くすべてが現在のアセンブリ内のユーザー作成コードにアクセスできない場合でも、この API は null を返します。 あいまいさの解像度をきめ細かく制御する場合は、代わりに使用 GetTypesByMetadataName(String) し、必要なシンボルの結果をフィルター処理することを検討してください。

アセンブリには、複数のモジュールを含めることができます。 各アセンブリ内では、そのアセンブリのモジュール リスト内のモジュールの位置に基づいて検索が実行されます。 アセンブリ内の 1 つのモジュールで一致するものが見つかった場合、そのアセンブリ内のそれ以上のモジュールは検索されません。

型フォワーダーは無視され、TypeForwardAttribute が書き込まれるアセンブリの一部とは見なされません。

入れ子になった各レベルであいまいさが検出されます。 たとえば、要求され、複数Aあるが、そのうちの 1 つだけが入れ子になった型を持つB場合A+B、参照はあいまいと見なされ、null が返されます。

適用対象