You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			852 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			852 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <?xml version="1.0" encoding="us-ascii"?>
 | |
| <html xmlns="http://www.w3.org/1999/xhtml">
 | |
| <head>
 | |
|     <title>mono-api-domains.html</title>
 | |
|     <style type="text/css">
 | |
|     .mapi-docs {
 | |
| 	line-height: 1.5;
 | |
| 	padding-left: 2em;
 | |
| 	padding-right: 2em;
 | |
|     }
 | |
|     .mapi-docs p {
 | |
| 	max-width: 60em;
 | |
|     }
 | |
|     .mapi-docs .mapi-body {
 | |
| 	max-width: 60em;
 | |
|     }
 | |
|     .mapi-docs code {
 | |
|         border: 1px solid rgba(214,214,214,1);
 | |
| 	background-color: rgba(249,249,249,1);
 | |
| 	padding: 0.1em 0.5em;
 | |
|     }
 | |
|     .mapi-description code {
 | |
|         font-family: "Consolas", "Courier", monospace;
 | |
|         border: 1px solid rgba(214,214,214,1);
 | |
| 	background-color: rgba(249,249,249,1);
 | |
| 	padding: 0.1em 0.2em;
 | |
|     }
 | |
| 
 | |
|     .mapi-header {
 | |
|         padding: 0 0 5pt 5pt;
 | |
|         margin: 10pt;
 | |
|         white-space: pre;
 | |
|         font-family: monospace;
 | |
|         border: 1px solid rgba(233,233,233,1);
 | |
| 	background-color: rgba(249,249,249,1);
 | |
|     }
 | |
| 
 | |
|     .mapi-code {
 | |
|         padding: 5pt 5pt;
 | |
|         margin: 10pt;
 | |
|         white-space: pre;
 | |
|         font-family: monospace;
 | |
|         border: 1px solid rgba(233,233,233,1);
 | |
| 	background-color: rgba(249,249,249,1);
 | |
|     }
 | |
| 
 | |
|     .mapi-code:first-line {
 | |
|         line-height: 0px;
 | |
|     }
 | |
| 
 | |
|     .mapi-codeblock {
 | |
|         display: block;
 | |
|         padding: 5pt 5pt;
 | |
|         margin: 10pt;
 | |
|         white-space: pre;
 | |
|         font-family: monospace;
 | |
|         border: 1px solid rgba(233,233,233,1);
 | |
|         background-color: rgba(249,249,249,1);
 | |
|     }
 | |
| 
 | |
|     .mapi-entry code {
 | |
|         border: none;
 | |
|         background-color: transparent;
 | |
|     }
 | |
|     
 | |
|     .mapi-parameters {
 | |
|         border-collapse: collapse;
 | |
|         border-spacing: 0;
 | |
|         empty-cells: hide;
 | |
|         border: 0;
 | |
|         margin: 5px 0 26px;	    
 | |
|     }
 | |
| 
 | |
|     .mapi-parameters td {
 | |
|         border: 1px solid rgba(214,214,214,1);
 | |
| 	  border-left-style: none;
 | |
| 	padding: 5px 25px 5px 10px;
 | |
|     }
 | |
| 
 | |
|     .mapi-parameters tr>td:last-child  {
 | |
|         border-right: 0;
 | |
|     }
 | |
| 	
 | |
|     .mapi-parameters td:first-of-type {
 | |
|         text-align: right;
 | |
|         padding: 7px;
 | |
|         vertical-align: top;
 | |
|         word-break: normal;
 | |
|         width: 40px;
 | |
|     }
 | |
| 
 | |
|     .mapi-parameters tr:last-child>td {
 | |
|         border-bottom: 0;
 | |
|     }
 | |
| 
 | |
|     .mapi-parameters tr:first-child>td {
 | |
|         border-top: 0;
 | |
|     }
 | |
| 
 | |
|     .mapi-parameters tr td:first-of-type {
 | |
|         text-align: right;
 | |
|         padding: 7px;
 | |
|         vertical-align: top;
 | |
|         word-break: normal;
 | |
|         width: 40px;
 | |
|     }
 | |
| 
 | |
|    .mapi {
 | |
|         left: -25px;
 | |
|         margin: 0;
 | |
|         padding: 13px 25px 0;
 | |
|         position: relative;
 | |
|         width: 100%;
 | |
|     } 
 | |
| 
 | |
|     .mapi-description {
 | |
|         background: rgba(249,249,249,1);
 | |
|         border-bottom: 1px solid rgba(233,233,233,1);
 | |
|         left: -25px;
 | |
|         margin: 0;
 | |
|         padding: 13px 25px 0;
 | |
|         position: relative;
 | |
|         width: 100%;	 
 | |
|     }
 | |
| 
 | |
|      .mapi-entry {
 | |
|          background: transparent;
 | |
|      }
 | |
| 
 | |
|      .mapi-docs {
 | |
|      }
 | |
| 	
 | |
|      .mapi-prototype {
 | |
|          border-left: 5px solid rgba(205,233,244,1);
 | |
|          padding: .5em;
 | |
|          margin-top: 5pt;
 | |
|          margin-bottom: 5pt;
 | |
|          font-family: "Consolas", "Courier", monospace;
 | |
|          display: block;
 | |
|          overflow: auto;
 | |
|          background-color: #f9f9f9;
 | |
|     } 
 | |
| 
 | |
|     .mapi-declaration {
 | |
| 	margin-top: 21px;
 | |
|     }
 | |
| 
 | |
|     .mapi-section {
 | |
|         font-size: smaller;
 | |
| 	font-weight: bold;
 | |
| 	margin-top: 21px;
 | |
| 	line-height: 1.5;
 | |
|     }
 | |
| 	
 | |
|     .mapi-strike {
 | |
|         text-decoration: line-through;
 | |
|     }
 | |
| 
 | |
|     .mapi-deprecated {
 | |
|         color: red;
 | |
|     }
 | |
| 
 | |
|     .mapi-ptr-container {
 | |
|         background: white;
 | |
| 	border-bottom: 1px solid rgba(233,233,233,1);
 | |
|         left: -25px;
 | |
|         padding-left: 25px;
 | |
|         padding-right: 25px;
 | |
|         padding-bottom: 13px;
 | |
|         position: relative;
 | |
|         width: 100%;
 | |
|     }
 | |
| 
 | |
|     .mapi-ptr {
 | |
|         background: rgba(249,249,249,1);
 | |
| 	border-left: 1px solid rgba(233,233,233,1);
 | |
| 	border-top: 1px solid rgba(233,233,233,1);
 | |
|         height: 12px;
 | |
|         left: 37px;
 | |
|         top: -7px;
 | |
|         -webkit-transform: rotate(45deg);
 | |
|         -moz-transform: rotate(45deg);
 | |
|         -o-transform: rotate(45deg);
 | |
|         transform: rotate(45deg);
 | |
|         position: absolute;
 | |
|         width: 12px;
 | |
|     }
 | |
| 
 | |
|     .mapi-height-container {
 | |
|         left: -25px;
 | |
|         padding: 0 25px;
 | |
|         position: relative;
 | |
|         width: 100%;
 | |
|     }
 | |
| 	
 | |
| </style>
 | |
| </head>
 | |
| <body>
 | |
| <div class="mapi-docs">
 | |
| <h2>Application Domains</h2>
 | |
| 
 | |
| <h3>Synopsis</h3>
 | |
| 
 | |
| <div class="mapi-header">
 | |
| #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
 | |
| 
 | |
| </div>
 | |
| 
 | |
| 	<p />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.
 | |
| 
 | |
| 	<p />For more information on applications domains see the <a href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx">AppDomain FAQ</a>.
 | |
| 		
 | |
| 	<p />The <tt>MonoDomain</tt> is the unmanaged representation of
 | |
| 	the <a href="http://www.mono-project.com/monodoc/T:System.AppDomain">System.AppDomain</a>
 | |
| 	managed type, while the <tt>MonoAppDomain</tt> type represents
 | |
| 	the managed version (<tt>MonoAppDomain</tt> has a pointer to
 | |
| 	a <tt>MonoDomain</tt>).
 | |
| 
 | |
| <a name="api:mono_domain_assembly_open"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_assembly_open</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoAssembly*
 | |
| mono_domain_assembly_open (MonoDomain *domain, const char *name)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> the application domain</td></tr><tr><td><i>name</i></td><td> file name of the assembly</td></tr></tbody></table>        </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_create"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_create</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoDomain*
 | |
| mono_domain_create (void)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 New initialized <code>MonoDomain</code>, with no configuration or assemblies
 | |
| 
 | |
| 	 loaded into it.</div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Creates a new application domain, the unmanaged representation
 | |
|  of the actual domain.
 | |
| <p />
 | |
|  Application domains provide an isolation facilty for assemblies.   You
 | |
|  can load assemblies and execute code in them that will not be visible
 | |
|  to other application domains. This is a runtime-based virtualization
 | |
|  technology.
 | |
| <p />
 | |
|  It is possible to unload domains, which unloads the assemblies and
 | |
|  data that was allocated in that domain.
 | |
| <p />
 | |
|  When a domain is created a mempool is allocated for domain-specific
 | |
|  structures, along a dedicated code manager to hold code that is
 | |
|  associated with the domain.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_create_appdomain"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_create_appdomain</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoDomain*
 | |
| mono_domain_create_appdomain (char *friendly_name, char *configuration_file)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>friendly_name</i></td><td> The friendly name of the appdomain to create</td></tr><tr><td><i>configuration_file</i></td><td> The configuration file to initialize the appdomain with</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 a <code>MonoDomain</code> initialized with the appdomain
 | |
| </div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_finalize"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_finalize</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gboolean
 | |
| mono_domain_finalize (MonoDomain *domain, guint32 timeout) 
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> the domain to finalize</td></tr><tr><td><i>timeout</i></td><td> msecs to wait for the finalization to complete, <code>-1</code> to wait indefinitely</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 <code>TRUE</code> if succeeded, <code>FALSE</code> if there was a timeout
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Request finalization of all finalizable objects inside <i>domain</i>. Wait
 | |
|  <i>timeout</i> msecs for the finalization to complete.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_foreach"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_foreach</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_domain_foreach (MonoDomainFunc func, gpointer user_data)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>func</i></td><td> function to invoke with the domain data</td></tr><tr><td><i>user_data</i></td><td> user-defined pointer that is passed to the supplied <i>func</i> fo reach domain</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Use this method to safely iterate over all the loaded application
 | |
|  domains in the current runtime.   The provided <i>func</i> is invoked with a
 | |
|  pointer to the <code>MonoDomain</code> and is given the value of the <i>user_data</i>
 | |
|  parameter which can be used to pass state to your called routine.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_free"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_free</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_domain_free (MonoDomain *domain, gboolean force)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> the domain to release</td></tr><tr><td><i>force</i></td><td> if <code>TRUE</code>, it allows the root domain to be released (used at shutdown only).</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  This releases the resources associated with the specific domain.
 | |
|  This is a low-level function that is invoked by the AppDomain infrastructure
 | |
|  when necessary.
 | |
| <p />
 | |
|  In theory, this is dead code on netcore and thus does not need to be ALC-aware.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_from_appdomain"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_from_appdomain</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoDomain*
 | |
| mono_domain_from_appdomain (MonoAppDomain *appdomain_raw)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_get_by_id"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_get_by_id</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoDomain* 
 | |
| mono_domain_get_by_id (gint32 domainid) 
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domainid</i></td><td> the ID</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 the domain for a specific domain id.
 | |
| </div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_get_friendly_name"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_get_friendly_name</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">const char *
 | |
| mono_domain_get_friendly_name (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 The friendly name of <i>domain</i>. Can be <code>NULL</code> if not yet set.
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  The returned string's lifetime is the same as <i>domain</i>'s. Consider
 | |
|  copying it if you need to store it somewhere.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_get_id"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_get_id</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gint32
 | |
| mono_domain_get_id (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 The unique ID for <i>domain</i>.
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  A domain ID is guaranteed to be unique for as long as the domain
 | |
|  using it is alive. It may be reused later once the domain has been
 | |
|  unloaded.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_get"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_get</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoDomain*
 | |
| mono_domain_get ()
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 the current domain
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  This method returns the value of the current <code>MonoDomain</code> that this thread
 | |
|  and code are running under.   To obtain the root domain use
 | |
|  <code>mono_get_root_domain</code> API.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_has_type_resolve"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_has_type_resolve</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gboolean
 | |
| mono_domain_has_type_resolve (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> application domain being looked up</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 <code>TRUE</code> if the <code>AppDomain.TypeResolve</code> field has been set.
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_is_unloading"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_is_unloading</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gboolean
 | |
| mono_domain_is_unloading (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_owns_vtable_slot"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_owns_vtable_slot</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gboolean
 | |
| mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 Whether <i>vtable_slot</i> is inside a vtable which belongs to <i>domain</i>.
 | |
| </div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_set_config"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_set_config</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_domain_set_config (MonoDomain *domain, const char *base_dir, const char *config_file_name)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> <code>MonoDomain</code> initialized with the appdomain we want to change</td></tr><tr><td><i>base_dir</i></td><td> new base directory for the appdomain</td></tr><tr><td><i>config_file_name</i></td><td> path to the new configuration for the app domain</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Used to set the system configuration for an appdomain
 | |
| <p />
 | |
|  Without using this, embedded builds will get 'System.Configuration.ConfigurationErrorsException: 
 | |
|  Error Initializing the configuration system. ---> System.ArgumentException: 
 | |
|  The 'ExeConfigFilename' argument cannot be null.' for some managed calls.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_set_internal"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_set_internal</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_domain_set_internal (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> the new domain</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Sets the current domain to <i>domain</i>.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_set"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_set</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gboolean
 | |
| mono_domain_set (MonoDomain *domain, gboolean force)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> domain</td></tr><tr><td><i>force</i></td><td> force setting.</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 <code>TRUE</code> on success; <code>FALSE</code> if the domain is unloaded
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Set the current appdomain to <i>domain</i>. If <i>force</i> is set, set it even
 | |
|  if it is being unloaded.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_try_type_resolve"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_try_type_resolve</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoReflectionAssembly*
 | |
| mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *typebuilder_raw)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> application domain in which to resolve the type</td></tr><tr><td><i>name</i></td><td> the name of the type to resolve or <code>NULL</code>.</td></tr><tr><td><i>typebuilder</i></td><td> A <code>System.Reflection.Emit.TypeBuilder</code>, used if name is <code>NULL</code>.</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 A <code>MonoReflectionAssembly</code> or <code>NULL</code> if not found
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  This routine invokes the internal <code>System.AppDomain.DoTypeResolve</code> and returns
 | |
|  the assembly that matches name, or ((TypeBuilder)typebuilder).FullName.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_try_unload"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_try_unload</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">mono_domain_try_unload</div>
 | |
|             <p />
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_domain_unload"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_domain_unload</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_domain_try_unload (MonoDomain *domain, MonoObject **exc)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> The domain to unload</td></tr><tr><td><i>exc</i></td><td> Exception information</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|   Unloads an appdomain. Follows the process outlined in:
 | |
|   http://blogs.gotdotnet.com/cbrumme
 | |
| <p />
 | |
|   If doing things the 'right' way is too hard or complex, we do it the 
 | |
|   'simple' way, which means do everything needed to avoid crashes and
 | |
|   memory leaks, but not much else.
 | |
| <p />
 | |
|   It is required to pass a valid reference to the exc argument, upon return
 | |
|   from this function *exc will be set to the exception thrown, if any.
 | |
| <p />
 | |
|   If this method is not called from an icall (embedded scenario for instance),
 | |
|   it must not be called with any managed frames on the stack, since the unload
 | |
|   process could end up trying to abort the current thread.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| 
 | |
| <h3>Contexts</h3>
 | |
| 
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_context_init"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_context_init</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void
 | |
| mono_context_init (MonoDomain *domain)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> The domain where the <code>System.Runtime.Remoting.Context.Context</code> is initialized</td></tr></tbody></table>             <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
|  Initializes the <i>domain</i>'s default <code>System.Runtime.Remoting</code> 's Context.</div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_context_get"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_context_get</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">MonoAppContext* 
 | |
| mono_context_get (void)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|              <div class="mapi-section">Return value</div>
 | |
|              <div>	 the current Mono Application Context.
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_context_get_domain_id"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_context_get_domain_id</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gint32
 | |
| mono_context_get_domain_id (MonoAppContext *context)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>context</i></td><td> the context to operate on.</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 The ID of the domain that <i>context</i> was created in.
 | |
| </div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_context_get_id"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_context_get_id</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">gint32
 | |
| mono_context_get_id (MonoAppContext *context)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|             <div class="mapi-section">Parameters</div>
 | |
|             <table class="mapi-parameters"><tbody><tr><td><i>context</i></td><td> the context to operate on.</td></tr></tbody></table>             <div class="mapi-section">Return value</div>
 | |
|              <div>	 The unique ID for <i>context</i>.
 | |
| </div>
 | |
|              <div class="mapi-section">Description</div>
 | |
|              <div>
 | |
| <p />
 | |
|  Context IDs are guaranteed to be unique for the duration of a Mono
 | |
|  process; they are never reused.
 | |
| <p /></div>
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 | |
| </div> <!-- class=mapi  -->
 | |
| 
 | |
| <a name="api:mono_context_set"></a>
 | |
| <div class="mapi">
 | |
|     <div class="mapi-entry "><code>mono_context_set</code></div>
 | |
|     <div class="mapi-height-container">
 | |
|         <div class="mapi-ptr-container"></div>
 | |
|         <div class="mapi-description">
 | |
|             <div class="mapi-ptr"></div>
 | |
| 
 | |
|             <div class="mapi-declaration mapi-section">Syntax</div>
 | |
|             <div class="mapi-prototype">void 
 | |
| mono_context_set (MonoAppContext * new_context)
 | |
| 
 | |
| </div>
 | |
|             <p />
 | |
|         </div><!--mapi-description -->
 | |
|     </div><!--height container -->
 |