MetadataLoadContext.CoreAssembly プロパティ

定義

Int32 などの既知の型を格納する「システム アセンブリ」を示すアセンブリを取得または設定します。

public:
 property System::Reflection::Assembly ^ CoreAssembly { System::Reflection::Assembly ^ get(); };
public System.Reflection.Assembly CoreAssembly { get; }
public System.Reflection.Assembly? CoreAssembly { get; }
member this.CoreAssembly : System.Reflection.Assembly
Public ReadOnly Property CoreAssembly As Assembly

プロパティ値

Assembly

Assembly のインスタンス。

注釈

通常の型とは異なり、これらの既知の型への参照にはアセンブリ参照が含まれていないため、コア アセンブリは他のアセンブリとは異なる方法で処理されます。

通常、このアセンブリの名前は "mscorlib" または "netstandard" です。 コア アセンブリが見つからない場合、値は null、メソッド シグネチャを解析するものを含む他の多くのリフレクション メソッドが例外をスローします。

これはCoreAssembly、コンストラクターに渡されるパラメーターをcoreAssemblyNameMetadataAssemblyResolverメソッドに渡すことによって決定されますMetadataAssemblyResolver.Resolve

コンストラクターMetadataLoadContextに引数が指定されていないcoreAssemblyName場合は、"mscorlib"、"System.Runtime"、"netstandard" などの既定値が使用されます。

指定されたコア アセンブリには、コア型を直接含める必要はありません。 型によって他のアセンブリに転送できます。 したがって、指定されたコア アセンブリとして mscorlib ファサードを使用することは完全に許容されます。

System.Runtimeこのような相互運用関連の擬似カスタム属性型DllImportAttributeの一部を除外するため、理想的なコア アセンブリではないことに注意してください。 ただし、これらの属性に関心がない場合は、この機能を使用できます。 コア アセンブリに必要な型が含まれていない場合、CustomAttributes API はこれらの属性をスキップします。

コア アセンブリは、必要になるまで読み込まれません。 次の API では、コア アセンブリの検索はトリガーされません。

コア アセンブリが見つからない場合、またはコア アセンブリに型がない場合は、次の動作に影響します MetadataLoadContext

  • シグネチャまたは typespec を解析し、オブジェクトとして Type 結果を返す必要がある API は例外をスローします。 次に例を示します。

  • よく知られているコア型と型を比較する必要がある API は例外をスローせず、比較は次に false評価されます。 たとえば、コア アセンブリを指定しない場合は、IsPrimitive名前付きのInt32型であっても、すべてについて返falseされます。 同様に、 Type.GetTypeCode すべてが返 Object されます。

  • メタデータ エンティティがその表面に擬似カスタム属性としてフラグを設定し、コア アセンブリに擬似カスタム属性の型、必要なコンストラクター、またはコンストラクターのパラメーター型のいずれかが含まれていない場合、 MetadataLoadContext スローされません。 返される属性の一覧から擬似カスタム属性が省略されます。

適用対象