Compilation.GetTypeByMetadataName(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コンパイルのアセンブリ内の型と、その標準 CLR メタデータ名を使用して参照されるすべてのアセンブリ (extern エイリアスを介してのみ参照できるアセンブリを除く) を取得します。 このルックアップは、次の順序に従います。
- コンパイルのアセンブリで型が見つかった場合は、その型が返されます。
-
次に、コア ライブラリ (アセンブリ参照を
System.Object
定義し、アセンブリ参照を持たないライブラリ) が検索されます。 型が見つかった場合は、その型が返されます。 - 最後に、参照されているすべての非外部アセンブリが検索されます。 指定されたメタデータ名に一致する型が 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 が返されます。
適用対象
.NET