다음을 통해 공유


AppDomain.AssemblyLoad 이벤트

어셈블리가 로드될 때 발생합니다.

네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Event AssemblyLoad As AssemblyLoadEventHandler
‘사용 방법
Dim instance As AppDomain
Dim handler As AssemblyLoadEventHandler

AddHandler instance.AssemblyLoad, handler
public event AssemblyLoadEventHandler AssemblyLoad
public:
virtual event AssemblyLoadEventHandler^ AssemblyLoad {
    void add (AssemblyLoadEventHandler^ value) sealed;
    void remove (AssemblyLoadEventHandler^ value) sealed;
}
/** @event */
public final void add_AssemblyLoad (AssemblyLoadEventHandler value)

/** @event */
public final void remove_AssemblyLoad (AssemblyLoadEventHandler value)
JScript에서는 이벤트를 사용할 수 있지만 새로 선언할 수는 없습니다.

설명

이 이벤트의 AssemblyLoadEventHandler 대리자는 로드된 어셈블리를 나타냅니다.

이 이벤트에 대한 이벤트 처리기를 등록하려면 필요한 사용 권한이 있어야 합니다. 그렇지 않으면 SecurityException이 throw됩니다.

이벤트 처리에 대한 자세한 내용은 이벤트 사용을 참조하십시오.

예제

다음 샘플에서는 AssemblyLoad 이벤트에 대해 설명합니다.

이 코드 예제를 실행하려면 정규화된 어셈블리 이름을 사용해야 합니다. 정규화된 어셈블리 이름을 가져오는 방법에 대한 자세한 내용은 어셈블리 이름을 참조하십시오.

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 
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();
   }
}
using namespace System;
using namespace System::Reflection;
ref class Test
{
public:
   static void MyAssemblyLoadEventHandler( Object^ sender, AssemblyLoadEventArgs^ args )
   {
      Console::WriteLine( "ASSEMBLY LOADED: {0}", args->LoadedAssembly->FullName );
      Console::WriteLine();
   }

};

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

   Console::WriteLine();
}

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   currentDomain->AssemblyLoad += gcnew AssemblyLoadEventHandler( Test::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
}

.NET Framework 보안

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

AppDomain 클래스
AppDomain 멤버
System 네임스페이스