次の方法で共有


AppDomain.AssemblyLoad イベント

アセンブリが読み込まれたときに発生します。

Public Overridable Event AssemblyLoad As AssemblyLoadEventHandler
[C#]
public virtual event AssemblyLoadEventHandler AssemblyLoad;
[C++]
public: virtual __event AssemblyLoadEventHandler* AssemblyLoad;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、AssemblyLoadEventArgs 型の引数を受け取りました。次の AssemblyLoadEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
LoadedAssembly 現在読み込まれているアセンブリを表す Assembly を取得します。

解説

このイベントの AssemblyLoadEventHandler デリゲートは、どのアセンブリが読み込まれたかを示します。

このイベントに対するイベント ハンドラを登録するには、Permissions のセクションで説明したアクセス許可が必要です。適切なアクセス許可がない場合は、SecurityException が発生します。

イベント処理の詳細については、「 イベントの利用 」を参照してください。

使用例

[Visual Basic, C#, C++] AssemblyLoad イベントのサンプルを次に示します。

[Visual Basic, C#, C++] このコード例を実行するには、アセンブリの完全限定名を指定する必要があります。アセンブリの完全限定名を取得する方法については、「 アセンブリ名 」を参照してください。

 
Option Strict On
Option Explicit On

Imports System
Imports System.Reflection

Module Test
   
   Sub Main()
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      AddHandler currentDomain.AssemblyLoad, AddressOf MyAssemblyLoadEventHandler
      
      PrintLoadedAssemblies(currentDomain)
      ' Lists mscorlib and this assembly

      ' You must supply a valid fully qualified assembly name here.      
      currentDomain.CreateInstance("System.Windows.Forms,Version,Culture,PublicKeyToken", "System.Windows.Forms.TextBox")
      ' Loads System, System.Drawing, System.Windows.Forms
      
      PrintLoadedAssemblies(currentDomain)
      ' Lists all five assemblies
   End Sub 'Main
   
   Sub PrintLoadedAssemblies(domain As AppDomain)
      Console.WriteLine("LOADED ASSEMBLIES:")
      Dim a As System.Reflection.Assembly
      For Each a In domain.GetAssemblies()
         Console.WriteLine(a.FullName)
      Next a
      Console.WriteLine()
   End Sub 'PrintLoadedAssemblies
   
   Sub MyAssemblyLoadEventHandler(sender As Object, args As AssemblyLoadEventArgs)
      Console.WriteLine("ASSEMBLY LOADED: " + args.LoadedAssembly.FullName)
      Console.WriteLine()
   End Sub 'MyAssemblyLoadEventHandler

End Module 'Test 

[C#] 
using System;
using System.Reflection;

class Test {

   public static void Main() {
      AppDomain currentDomain = AppDomain.CurrentDomain;
      currentDomain.AssemblyLoad += new AssemblyLoadEventHandler(MyAssemblyLoadEventHandler);
      
      PrintLoadedAssemblies(currentDomain);
      // Lists mscorlib and this assembly

      // You must supply a valid fully qualified assembly name here.      
      currentDomain.CreateInstance("System.Windows.Forms, Version, Culture, PublicKeyToken", "System.Windows.Forms.TextBox");
      // Loads System, System.Drawing, System.Windows.Forms
      
      PrintLoadedAssemblies(currentDomain);
      // Lists all five assemblies
   }
   
   static void PrintLoadedAssemblies(AppDomain domain) {
      Console.WriteLine("LOADED ASSEMBLIES:");
      foreach (Assembly a in domain.GetAssemblies()) {
         Console.WriteLine(a.FullName);
      }
      Console.WriteLine();
   }
   
   static void MyAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args) {
      Console.WriteLine("ASSEMBLY LOADED: " + args.LoadedAssembly.FullName);
      Console.WriteLine();
   }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Reflection;

__gc class Test {
public:
   static void MyAssemblyLoadEventHandler(Object* sender, AssemblyLoadEventArgs* args) {
      Console::WriteLine(S"ASSEMBLY LOADED: {0}", args->LoadedAssembly->FullName);
      Console::WriteLine();
   }
};

void PrintLoadedAssemblies(AppDomain* domain) {
   Console::WriteLine(S"LOADED ASSEMBLIES:");
   System::Collections::IEnumerator* myEnum = domain->GetAssemblies()->GetEnumerator();
   while (myEnum->MoveNext()) {
      Assembly* a = __try_cast<Assembly*>(myEnum->Current);

      Console::WriteLine(a->FullName);
   }
   Console::WriteLine();
}

int main() {
   AppDomain*  currentDomain = AppDomain::CurrentDomain;
   currentDomain->AssemblyLoad += new AssemblyLoadEventHandler(currentDomain, Test::MyAssemblyLoadEventHandler);

   PrintLoadedAssemblies(currentDomain);
   // Lists mscorlib and this assembly

   // You must supply a valid fully qualified assembly name here.
   currentDomain->CreateInstance(S"System.Windows.Forms, Version, Culture, PublicKeyToken", S"System.Windows.Forms.TextBox");
   // Loads System, System::Drawing, System::Windows::Forms

   PrintLoadedAssemblies(currentDomain);
   // Lists all five assemblies
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

AppDomain クラス | AppDomain メンバ | System 名前空間