Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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 Assembly[] ReflectionOnlyGetAssemblies ()
public Assembly[] ReflectionOnlyGetAssemblies ()
public function ReflectionOnlyGetAssemblies () : Assembly[]
Not applicable.

Return Value

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

Exception typeCondition

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.

using System;
using System.Reflection;
using System.Timers;

public class Example
{
    public static void 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.
        //
        string displayName = typeof(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.
        //
        Console.WriteLine("------------- Execution Context --------------");
        foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
        {
            Console.WriteLine("\t{0}", a.GetName());
        }
        Console.WriteLine("------------- Reflection-only Context --------------");
        foreach (Assembly a in AppDomain.CurrentDomain.ReflectionOnlyGetAssemblies())
        {
            Console.WriteLine("\t{0}", a.GetName());
        }
    }
}

import System.*;
import System.Reflection.*;
import System.Timers.*;

public class Example
{
    public static void main(String[] args)
    {
        // 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.
        //
        String displayName = Timer.class.ToType().get_Assembly().get_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.
        //
        Console.WriteLine("------------- Execution Context --------------");
        Assembly a = null;
        for (int iCtr = 0; iCtr < AppDomain.get_CurrentDomain().
            GetAssemblies().get_Length(); iCtr++) {
            a = AppDomain.get_CurrentDomain().GetAssemblies()[iCtr];
            Console.WriteLine("\t{0}", a.GetName());
        }
        Console.WriteLine("------------- Reflection-only Context --------------");

        for (int iCtr = 0; iCtr < AppDomain.get_CurrentDomain().
            ReflectionOnlyGetAssemblies().get_Length(); iCtr++) {
            a = AppDomain.get_CurrentDomain().
                ReflectionOnlyGetAssemblies()[iCtr];
            Console.WriteLine("\t{0}", a.GetName());
        }
    } //main
} //Example

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
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft