次の方法で共有


MetadataLoadContext.CoreAssembly プロパティ

定義

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

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

プロパティ値

Assembly のインスタンス。

注釈

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

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

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

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

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

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

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

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

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

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

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

適用対象