ModuleResolveEventHandler デリゲート
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Delegate Function ModuleResolveEventHandler ( _ sender As Object, _ e As ResolveEventArgs _ ) As Module
[SerializableAttribute] [ComVisibleAttribute(true)] public delegate Module ModuleResolveEventHandler ( Object sender, ResolveEventArgs e )
[SerializableAttribute] [ComVisibleAttribute(true)] public delegate Module^ ModuleResolveEventHandler ( Object^ sender, ResolveEventArgs^ e )
/** @delegate */ /** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public delegate Module ModuleResolveEventHandler ( Object sender, ResolveEventArgs e )

Assembly デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントとデリゲート」を参照してください。
共通言語ランタイム クラス ローダーが通常の方法でアセンブリの内部モジュールへの参照を解決できない場合は、コールバックによってモジュール自体を検索したり読み込んで返すことができるように、イベントが発生します。
Delegate および MulticastDelegate の各派生クラスには、コンストラクタと Invoke メソッドがありますDelegate の説明で示した C++ マネージ拡張コード例を参照してください。

イベント ハンドラが呼び出されたときの処理順序を示す例を次に示します。この例では、Server1 は MySample クラスの外部モジュールです。
この例をコンパイル、実行するには、次の手順を実行します。コマンド プロンプト ウィンドウを開き、MySample.cs が格納されているディレクトリに移動します。
次のコマンドを使用して Server1 をコンパイルします。
次のコマンドを使用して MySample をコンパイルします。
MySample.exe を実行します。
![]() |
---|
この例を正常に動作させるには、モジュール ファイル Server1.netmodule を "subfolder" というサブディレクトリに格納する必要があります。 |
using System; using System.Reflection; public class Server1 : MarshalByRefObject { public int trivial() { Console.WriteLine ("server1.trivial"); return 1; } } using System; using System.IO; using System.Reflection; class MySample { public static int Main(String[] args) { Assembly asm1 = Assembly.GetExecutingAssembly(); asm1.ModuleResolve += new ModuleResolveEventHandler (evModuleResolve); Console.WriteLine("Calling MySample.Test"); Test(); return 0; } private static Module evModuleResolve(object sender, ResolveEventArgs e) { Console.WriteLine("MySample.evModuleResolve"); FileStream fs = File.Open("subfolder\\Server1.netmodule", FileMode.Open); byte [] rgFileBytes = new byte [1]; long len = fs.Length; rgFileBytes = new byte[len]; fs.Read(rgFileBytes, 0, (int)len); Assembly a = Assembly.GetExecutingAssembly(); Module m = a.LoadModule("Server1.netmodule", rgFileBytes); return m; } private static void Test() { Console.WriteLine("Instantiating Server1"); Server1 s = new Server1(); Console.WriteLine("Calling Server1.trivial"); s.trivial(); } }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ModuleResolveEventHandler デリゲートのページへのリンク