AppDomain.ReflectionOnlyGetAssemblies Method ()

 

Returns the assemblies that have been loaded into the reflection-only context of the application domain.

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

Public Function ReflectionOnlyGetAssemblies As Assembly()

Return Value

Type: System.Reflection.Assembly()

An array of Assembly objects that represent the assemblies loaded into the reflection-only context of the application domain.

Exception Condition
AppDomainUnloadedException

An operation is attempted on an unloaded application domain.

This method returns the assemblies that have been loaded into the reflection-only context. To get the assemblies that have been loaded for execution, use the GetAssemblies method.

The following code example loads the System.dll assembly into the execution context and then into the reflection-only context. The GetAssemblies and ReflectionOnlyGetAssemblies methods are used to display the assemblies loaded into each context.

Imports System
Imports System.Reflection
Imports System.Timers

Public Class Example

    Public Shared Sub Main() 
        ' Get the assembly display name for System.dll, the assembly 
        ' that contains System.Timers.Timer. Note that this causes
        ' System.dll to be loaded into the execution context.
        '
        Dim displayName As String = GetType(Timer).Assembly.FullName

        ' Load System.dll into the reflection-only context. Note that 
        ' if you obtain the display name (for example, by running this
        ' example program), and enter it as a literal string in the 
        ' preceding line of code, you can load System.dll into the 
        ' reflection-only context without loading it into the execution 
        ' context.
        Assembly.ReflectionOnlyLoad(displayName)

        ' Display the assemblies loaded into the execution and 
        ' reflection-only contexts. System.dll appears in both contexts.
        '
        Dim ad As AppDomain = AppDomain.CurrentDomain
        Console.WriteLine("------------- Execution Context --------------")
        For Each a As Assembly In ad.GetAssemblies()
            Console.WriteLine(vbTab + "{0}", a.GetName())
        Next a
        Console.WriteLine("------------- Reflection-only Context --------------")
        For Each a As Assembly In ad.ReflectionOnlyGetAssemblies()
            Console.WriteLine(vbTab + "{0}", a.GetName())
        Next a

    End Sub
End Class

.NET Framework
Available since 2.0
Return to top
Show: