Retrieving Setup Information from an Application DomainĀ 

Each instance of an application domain consists of both properties and AppDomainSetup information. You can retrieve setup information from an application domain using the System.AppDomain class. This class provides several members that retrieve configuration information about an application domain.

You can also query the AppDomainSetup object for the application domain to obtain setup information that was passed to the domain when it was created.

The following example creates a new application domain and then prints several member values to the console.

Imports System
Imports System.Reflection
Class AppDomain3
   Public Shared Sub Main()
      'Create the new application domain.
      Dim domain As AppDomain = AppDomain.CreateDomain("MyDomain", Nothing)
      'Output to the console.
      Console.WriteLine(("Host domain: " + AppDomain.CurrentDomain.FriendlyName))
      Console.WriteLine(("new domain: " + domain.FriendlyName))
      Console.WriteLine(("Application base is: " + domain.BaseDirectory))
      Console.WriteLine(("Relative search path is: " + domain.RelativeSearchPath))
      Console.WriteLine(("Shadow copy files is set to: " + domain.ShadowCopyFiles))
      AppDomain.Unload(domain)
   End Sub 'Main
End Class 'AppDomain3
using System;
using System.Reflection;
class AppDomain3
{
   public static void Main()
   {
   //Create the new application domain.
   AppDomain domain = AppDomain.CreateDomain("MyDomain", null);
            //Output to the console.
            Console.WriteLine("Host domain: " +    AppDomain.CurrentDomain.FriendlyName);
            Console.WriteLine("new domain: " + domain.FriendlyName);
            Console.WriteLine("Application base is: " +    domain.BaseDirectory);
            Console.WriteLine("Relative search path is: " +    domain.RelativeSearchPath);
            Console.WriteLine("Shadow copy files is set to: " + domain.ShadowCopyFiles);
   AppDomain.Unload(domain);
   }
}

The following example sets, and then retrieves, setup information for an application domain. Note that AppDomain.SetupInformation.ApplicationBase gets the configuration information.

Imports System
Imports System.Reflection
Class AppDomain5
   Public Shared Sub Main()
      ' Application domain setup information.
      Dim domaininfo As New AppDomainSetup()
      domaininfo.ApplicationBase = "f:\work\development\latest"
      domaininfo.ConfigurationFile = "f:\work\development\latest\appdomain5.exe.config"
      
      ' Creates the application domain.
      Dim domain As AppDomain = AppDomain.CreateDomain("MyDomain", Nothing, domaininfo)
      
      ' Write the application domain information to the console.
      Console.WriteLine(("Host domain: " + AppDomain.CurrentDomain.FriendlyName))
      Console.WriteLine(("child domain: " + domain.FriendlyName))
      Console.WriteLine()
      Console.WriteLine(("Application base is: " + domain.SetupInformation.ApplicationBase))
      Console.WriteLine(("Configuration file is: " + domain.SetupInformation.ConfigurationFile))
      
      ' Unloads the application domain.
      AppDomain.Unload(domain)
   End Sub 'Main
End Class 'AppDomain5
using System;
using System.Reflection;
class AppDomain5
{
public static void Main()
{
 // Application domain setup information.
 AppDomainSetup domaininfo = new AppDomainSetup();
 domaininfo.ApplicationBase = "f:\\work\\development\\latest";
 domaininfo.ConfigurationFile = "f:\\work\\development\\latest\\appdomain5.exe.config";

 // Creates the application domain.
 AppDomain domain = AppDomain.CreateDomain("MyDomain", null, domaininfo);

// Write the application domain information to the console.
            Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
            Console.WriteLine("child domain: " + domain.FriendlyName);
            Console.WriteLine();
            Console.WriteLine("Application base is: " + domain.SetupInformation.ApplicationBase);
            Console.WriteLine("Configuration file is: " + domain.SetupInformation.ConfigurationFile);

// Unloads the application domain.
AppDomain.Unload(domain);
   }
}

See Also

Concepts

Programming with Application Domains

Other Resources

Hosting the Common Language Runtime
Using Application Domains