英語で読む

次の方法で共有


ResolveEventArgs.RequestingAssembly プロパティ

定義

依存関係が解決されるアセンブリを取得します。

C#
public System.Reflection.Assembly? RequestingAssembly { get; }
C#
public System.Reflection.Assembly RequestingAssembly { get; }

プロパティ値

Name プロパティで指定された項目を要求したアセンブリ。

注釈

このプロパティによって返されるアセンブリは、プロパティで Name 指定された項目を解決できなかったアセンブリです。そのアセンブリ、読み込まれた依存関係、またはローダーがプローブを通じて検出できる依存関係にアイテムが存在しなかったためです。

たとえば、クラス CA を使用するために、現在のアセンブリで メソッドを Assembly.LoadFile 使用して、プローブ パスの外部のディレクトリからアセンブリ A を読み込んだとします。 さらに、クラス CA がアセンブリ B でクラス CB を使用し、アセンブリ A にもプローブ パスの外側にあるアセンブリ B へのコンパイル時参照があるとします。 現在のアセンブリが CA のインスタンス化を試みると、ローダーはアセンブリ B への参照の解決を試みます。ただし、 メソッドを使用 Assembly.LoadFile してアセンブリ A が読み込まれたため、ローダーは依存関係を解決できません。 イベントの AppDomain.AssemblyResolve ハンドラーがある場合、イベントが発生し RequestingAssembly 、結果 ResolveEventArgs のオブジェクトの プロパティにアセンブリ A が含まれます。アセンブリ A は依存関係がないアセンブリであるためです。

プロパティの RequestingAssembly セマンティクスは、要求するアセンブリの読み込み方法によって異なります。

  • 読み込みコンテキスト: プロパティの値は である null可能性があります。 読み込みコンテキストは読み込み順序に依存せず、要求するアセンブリの ID は必ずしも意味を持つものではありません。 null 以外の例は、 メソッドが呼び出され、指定された型が要求側のアセンブリまたはその依存関係に認識されない場合 Type.GetType に発生します。

  • Load-from コンテキスト: プロパティはプローブ ヒントとして使用できますが、イベント ハンドラーは、特定のアセンブリ名に対して複数の要求を取得することはできません。

  • コンテキストがありません (つまり、要求元アセンブリが メソッドを使用 Assembly.LoadFile して読み込まれたか、バイト ストリームとして、または混合モードで読み込まれました): ハンドラーは、 プロパティを RequestingAssembly 使用して、要求元アセンブリの ID に基づいて同じアセンブリのさまざまな実装を読み込むことができます。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください