This documentation is archived and is not being maintained.

Programming with Application Domains

Application domains are usually created and manipulated programmatically by runtime hosts. However, sometimes an application program might also want to work with application domains. For example, an application program could unload an application component into a domain to avoid having to stop the entire application.

The AppDomain class is the programmatic interface to application domains. This class includes methods to create and unload domains, to create instances of types in domains, and to unload domains. The following table lists commonly used AppDomain methods.

AppDomain MethodDescription
CreateDomainCreates a new application domain. CreateDomain takes a set of properties that customize various aspects of the domain, such as the application base, or root directory for the application; the location of the configuration file for the domain; and the search path that the common language runtime is to use to load assemblies into the domain.
CreateInstanceFromCreates an instance of a specified type in the application domain.
LoadLoads an assembly into the application domain.
UnloadPerforms a graceful shutdown of the domain. The application domain is not unloaded until all threads running in the domain have either stopped or are no longer in the domain.

The unmanaged interfaces described in the common language runtime Hosting Interfaces Specification also provide access to application domains. Runtime hosts can use interfaces from unmanaged code to create and gain access to the application domains within a process.

See Also

Application Domains | AppDomain Class | AppDomain methods