This documentation is archived and is not being maintained.

AppDomain.Load Method (Byte[])

Loads the Assembly with a common object file format (COFF) based image containing an emitted Assembly.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Public Function Load ( _
	rawAssembly As Byte() _
) As Assembly
Dim instance As AppDomain
Dim rawAssembly As Byte()
Dim returnValue As Assembly

returnValue = instance.Load(rawAssembly)
public final Assembly Load (
	byte[] rawAssembly
public final function Load (
	rawAssembly : byte[]
) : Assembly
Not applicable.



An array of type byte that is a COFF-based image containing an emitted assembly.

Return Value

The loaded assembly.

Exception typeCondition


rawAssembly is a null reference (Nothing in Visual Basic).


rawAssembly is not a valid assembly.


Version 2.0 or later of the common language runtime is currently loaded and rawAssembly was compiled with a later version.


The operation is attempted on an unloaded application domain.


An assembly or module was loaded twice with two different evidences.

For more information, see the Load(AssemblyName) method overload.

The following sample demonstrates the use of loading a raw assembly.

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.

Imports System
Imports System.IO
Imports System.Reflection
Imports System.Reflection.Emit

Module Test
   Sub Main()
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      InstantiateMyType(currentDomain)      ' Failed!

      AddHandler currentDomain.AssemblyResolve, AddressOf MyResolver
      InstantiateMyType(currentDomain)      ' OK!
   End Sub 'Main
   Sub InstantiateMyType(domain As AppDomain)
	 ' You must supply a valid fully qualified assembly name here.
         domain.CreateInstance("Assembly text name, Version, Culture, PublicKeyToken", "MyType")
      Catch e As Exception
      End Try
   End Sub 'InstantiateMyType
   ' Loads the content of a file to a byte array. 
   Function loadFile(filename As String) As Byte()
      Dim fs As New FileStream(filename, FileMode.Open)
      Dim buffer(CInt(fs.Length)) As Byte
      fs.Read(buffer, 0, buffer.Length)
      Return buffer
   End Function 'loadFile
   Function MyResolver(sender As Object, args As ResolveEventArgs) As System.Reflection.Assembly
      Dim domain As AppDomain = DirectCast(sender, AppDomain)
      ' Once the files are generated, this call is
      ' actually no longer necessary.
      Dim rawAssembly As Byte() = loadFile("temp.dll")
      Dim rawSymbolStore As Byte() = loadFile("temp.pdb")
      Dim myAssembly As System.Reflection.Assembly = domain.Load(rawAssembly, rawSymbolStore)
      Return myAssembly
   End Function 'MyResolver
   ' Creates a dynamic assembly with symbol information
   ' and saves them to temp.dll and temp.pdb
   Sub EmitAssembly(domain As AppDomain)
      Dim assemblyName As New AssemblyName()
      assemblyName.Name = "MyAssembly"
      Dim assemblyBuilder As AssemblyBuilder = domain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Save)
      Dim moduleBuilder As ModuleBuilder = assemblyBuilder.DefineDynamicModule("MyModule", "temp.dll", True)
      Dim typeBuilder As TypeBuilder = moduleBuilder.DefineType("MyType", TypeAttributes.Public)
      Dim constructorBuilder As ConstructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Nothing)
      Dim ilGenerator As ILGenerator = constructorBuilder.GetILGenerator()
      ilGenerator.EmitWriteLine("MyType instantiated!")
   End Sub 'EmitAssembly

End Module 'Test

Windows 98, Windows Server 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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0