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