## Application Domains

### Synopsis

#include <metadata/appdomain.h> /* Managed AppDomain */ typedef struct _MonoAppDomain MonoAppDomain; /* Unmanaged representation */ typedef struct _MonoDomain MonoDomain; /* Represents System.Runtime.Remoting.Contexts.Context */ typedef struct _MonoAppContext MonoAppContext @API_IDX@

Application domains are used to isolate multiple applications on a single Mono virtual machine. They are conceptually similiar to processes, the difference is that processes are managed by the operating system, while application domains are managed by the Mono virtual machine.

For more information on applications domains see the AppDomain FAQ.

The `MonoDomain` is the unmanaged representation of the System.AppDomain managed type, while the `MonoAppDomain` type represents the managed version (`MonoAppDomain` has a pointer to a `MonoDomain`).

#### mono_domain_assembly_open

#### mono_domain_create

#### mono_domain_create_appdomain

#### mono_domain_finalize

#### mono_domain_foreach

#### mono_domain_free

#### mono_domain_from_appdomain

#### mono_domain_get_by_id

#### mono_domain_get_friendly_name

#### mono_domain_get_id

#### mono_domain_get

#### mono_domain_has_type_resolve

#### mono_domain_is_unloading

#### mono_domain_owns_vtable_slot

#### mono_domain_set_config

#### mono_domain_set_internal

#### mono_domain_set

#### mono_domain_try_type_resolve

#### mono_domain_try_unload

#### mono_domain_unload

### Contexts

#### mono_context_init

#### mono_context_get

#### mono_context_get_domain_id

#### mono_context_get_id

#### mono_context_set

#### mono_context_get_desc