mono-api-domains.html
Application Domains
Synopsis
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
MonoAssembly*
mono_domain_assembly_open (MonoDomain *domain, const char *name)
Parameters
domain: the application domainname: file name of the assembly
Remarks
fixme: maybe we should integrate this with mono_assembly_open ??
mono_domain_create
Prototype: mono_domain_create
mono_domain_finalize
gboolean
mono_domain_finalize (MonoDomain *domain, guint32 timeout)
Parameters
domain: the domain to finalizetimeout: msects to wait for the finalization to complete, -1 to wait indefinitely
Returns
TRUE if succeeded, FALSE if there was a timeout
Remarks
Request finalization of all finalizable objects inside
domain. Wait
timeout msecs for the finalization to complete.
mono_domain_foreach
Prototype: mono_domain_foreach
mono_domain_free
Prototype: mono_domain_free
mono_domain_get_by_id
Prototype: mono_domain_get_by_id
mono_domain_get_id
MonoDomain*
mono_domain_get_by_id (gint32 domainid)
Parameters
domainid: the ID
Returns
the a domain for a specific domain id.
mono_domain_get
MonoDomain*
mono_domain_get ()
Returns
the current domain, to obtain the root domain use
mono_get_root_domain().
mono_domain_has_type_resolve
gboolean
mono_domain_has_type_resolve (MonoDomain *domain)
Parameters
domain: application domains being looked up
Remarks
Returns true if the AppDomain.TypeResolve field has been
set.
mono_domain_is_unloading
Prototype: mono_domain_is_unloading
mono_domain_set_internal
void
mono_domain_set_internal (MonoDomain *domain)
Parameters
domain: the new domain
Remarks
Sets the current domain to
domain.
mono_domain_set
gboolean
mono_domain_set (MonoDomain *domain, gboolean force)
Parameters
domain: domainforce: force setting.
Returns
TRUE on success;
FALSE if the domain is unloaded
Remarks
Set the current appdomain to
domain. If
force is set, set it even
if it is being unloaded.
mono_domain_try_type_resolve
MonoReflectionAssembly*
mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb)
Parameters
domain: application domainwhere the name where the type is going to be resolvedname: the name of the type to resolve or NULL.tb: A System.Reflection.Emit.TypeBuilder, used if name is NULL.
Returns
A MonoReflectionAssembly or NULL if not found
Remarks
This routine invokes the internal System.AppDomain.DoTypeResolve and returns
the assembly that matches name.
If
name is null, the value of ((TypeBuilder)tb).FullName is used instead
mono_domain_owns_vtable_slot
gboolean
mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot)
Remarks
Returns whenever VTABLE_SLOT is inside a vtable which belongs to DOMAIN.
Contexts
mono_context_get
Prototype: mono_context_get