Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

AppDomain.AssemblyLoad Event

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.Extensions.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Occurs when an assembly is loaded.

public:
 event AssemblyLoadEventHandler ^ AssemblyLoad;
public:
 virtual event AssemblyLoadEventHandler ^ AssemblyLoad;
public event AssemblyLoadEventHandler? AssemblyLoad;
public event AssemblyLoadEventHandler AssemblyLoad;
[add: System.Security.SecurityCritical]
[remove: System.Security.SecurityCritical]
public event AssemblyLoadEventHandler AssemblyLoad;
member this.AssemblyLoad : AssemblyLoadEventHandler 
[<add: System.Security.SecurityCritical>]
[<remove: System.Security.SecurityCritical>]
member this.AssemblyLoad : AssemblyLoadEventHandler 
Public Custom Event AssemblyLoad As AssemblyLoadEventHandler 
Public Event AssemblyLoad As AssemblyLoadEventHandler 

Event Type

Implements

Attributes

Examples

The following sample demonstrates the AssemblyLoad event.

For this code example to run, you must provide the fully qualified assembly name. For information about how to obtain the fully qualified assembly name, see Assembly Names.

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
}
using System;
using System.Reflection;

class AssemblyLoadSnippet {

 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();
 }
}
open System

let printLoadedAssemblies (domain: AppDomain) =
 printfn "LOADED ASSEMBLIES:"
 for a in domain.GetAssemblies() do
 printfn $"{a.FullName}"
 printfn ""

let myAssemblyLoadEventHandler _ (args: AssemblyLoadEventArgs) =
 printfn $"ASSEMBLY LOADED: {args.LoadedAssembly.FullName}\n"

let currentDomain = AppDomain.CurrentDomain
currentDomain.AssemblyLoad.AddHandler(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
Option Strict On
Option Explicit On

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
 
 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
 
 Sub MyAssemblyLoadEventHandler(sender As Object, args As AssemblyLoadEventArgs)
 Console.WriteLine("ASSEMBLY LOADED: " + args.LoadedAssembly.FullName)
 Console.WriteLine()
 End Sub

End Module 'Test

Remarks

The AssemblyLoadEventHandler delegate for this event indicates what assembly was loaded.

To register an event handler for this event, you must have the required permissions, or a SecurityException is thrown.

For more information about handling events, see Handling and Raising Events.

Applies to


Feedback

Was this page helpful?