171 lines
8.0 KiB
C#
171 lines
8.0 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using System.Runtime.Hosting;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security;
|
|
using System.Security.Policy;
|
|
using System.Threading;
|
|
|
|
namespace System
|
|
{
|
|
/// <summary>Provides a managed equivalent of an unmanaged host.</summary>
|
|
/// <exception cref="T:System.Security.SecurityException">The caller does not have the correct permissions. See the Requirements section.</exception>
|
|
/// <filterpriority>2</filterpriority>
|
|
// Token: 0x02000631 RID: 1585
|
|
[ComVisible(true)]
|
|
public class AppDomainManager : MarshalByRefObject
|
|
{
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.AppDomainManager" /> class. </summary>
|
|
// Token: 0x06003ABE RID: 15038 RVA: 0x000C8F68 File Offset: 0x000C7168
|
|
public AppDomainManager()
|
|
{
|
|
this._flags = AppDomainManagerInitializationOptions.None;
|
|
}
|
|
|
|
/// <summary>Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.</summary>
|
|
/// <returns>An <see cref="T:System.Runtime.Hosting.ApplicationActivator" /> object.</returns>
|
|
/// <filterpriority>1</filterpriority>
|
|
// Token: 0x17000B31 RID: 2865
|
|
// (get) Token: 0x06003ABF RID: 15039 RVA: 0x000C8F78 File Offset: 0x000C7178
|
|
public virtual ApplicationActivator ApplicationActivator
|
|
{
|
|
get
|
|
{
|
|
if (this._activator == null)
|
|
{
|
|
this._activator = new ApplicationActivator();
|
|
}
|
|
return this._activator;
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the entry assembly for an application.</summary>
|
|
/// <returns>An <see cref="T:System.Reflection.Assembly" /> object representing the entry assembly for the application.</returns>
|
|
/// <filterpriority>1</filterpriority>
|
|
// Token: 0x17000B32 RID: 2866
|
|
// (get) Token: 0x06003AC0 RID: 15040 RVA: 0x000C8F98 File Offset: 0x000C7198
|
|
public virtual Assembly EntryAssembly
|
|
{
|
|
get
|
|
{
|
|
return Assembly.GetEntryAssembly();
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the host execution context manager that manages the flow of the execution context.</summary>
|
|
/// <returns>A <see cref="T:System.Threading.HostExecutionContextManager" /> object.</returns>
|
|
/// <filterpriority>2</filterpriority>
|
|
/// <PermissionSet>
|
|
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Infrastructure" />
|
|
/// </PermissionSet>
|
|
// Token: 0x17000B33 RID: 2867
|
|
// (get) Token: 0x06003AC1 RID: 15041 RVA: 0x000C8FA0 File Offset: 0x000C71A0
|
|
[MonoTODO]
|
|
public virtual HostExecutionContextManager HostExecutionContextManager
|
|
{
|
|
get
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the host security manager that participates in security decisions for the application domain.</summary>
|
|
/// <returns>A <see cref="T:System.Security.HostSecurityManager" /> object.</returns>
|
|
/// <filterpriority>2</filterpriority>
|
|
/// <PermissionSet>
|
|
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Infrastructure" />
|
|
/// </PermissionSet>
|
|
// Token: 0x17000B34 RID: 2868
|
|
// (get) Token: 0x06003AC2 RID: 15042 RVA: 0x000C8FA8 File Offset: 0x000C71A8
|
|
public virtual HostSecurityManager HostSecurityManager
|
|
{
|
|
get
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets the initialization flags for custom application domain managers.</summary>
|
|
/// <returns>A bitwise combination of the <see cref="T:System.AppDomainManagerInitializationOptions" /> describing the initialization action to perform. The default is <see cref="F:System.AppDomainManagerInitializationOptions.None" />.</returns>
|
|
/// <filterpriority>1</filterpriority>
|
|
// Token: 0x17000B35 RID: 2869
|
|
// (get) Token: 0x06003AC3 RID: 15043 RVA: 0x000C8FAC File Offset: 0x000C71AC
|
|
// (set) Token: 0x06003AC4 RID: 15044 RVA: 0x000C8FB4 File Offset: 0x000C71B4
|
|
public AppDomainManagerInitializationOptions InitializationFlags
|
|
{
|
|
get
|
|
{
|
|
return this._flags;
|
|
}
|
|
set
|
|
{
|
|
this._flags = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>Returns an application domain that can be either a new or existing domain.</summary>
|
|
/// <returns>An <see cref="T:System.AppDomain" /> object.</returns>
|
|
/// <param name="friendlyName">The friendly name of the domain. </param>
|
|
/// <param name="securityInfo">An <see cref="T:System.Security.Policy.Evidence" /> object that contains evidence mapped through the security policy to establish a top-of-stack permission set.</param>
|
|
/// <param name="appDomainInfo">An <see cref="T:System.AppDomainSetup" /> object that contains application domain initialization information.</param>
|
|
/// <filterpriority>2</filterpriority>
|
|
/// <PermissionSet>
|
|
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence, ControlAppDomain, Infrastructure" />
|
|
/// </PermissionSet>
|
|
// Token: 0x06003AC5 RID: 15045 RVA: 0x000C8FC0 File Offset: 0x000C71C0
|
|
public virtual AppDomain CreateDomain(string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
|
|
{
|
|
this.InitializeNewDomain(appDomainInfo);
|
|
AppDomain appDomain = AppDomainManager.CreateDomainHelper(friendlyName, securityInfo, appDomainInfo);
|
|
if ((this.HostSecurityManager.Flags & HostSecurityManagerOptions.HostPolicyLevel) == HostSecurityManagerOptions.HostPolicyLevel)
|
|
{
|
|
PolicyLevel domainPolicy = this.HostSecurityManager.DomainPolicy;
|
|
if (domainPolicy != null)
|
|
{
|
|
appDomain.SetAppDomainPolicy(domainPolicy);
|
|
}
|
|
}
|
|
return appDomain;
|
|
}
|
|
|
|
/// <summary>Initializes the new application domain.</summary>
|
|
/// <param name="appDomainInfo">An <see cref="T:System.AppDomainSetup" /> object that contains application domain initialization information.</param>
|
|
/// <filterpriority>2</filterpriority>
|
|
/// <PermissionSet>
|
|
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Infrastructure" />
|
|
/// </PermissionSet>
|
|
// Token: 0x06003AC6 RID: 15046 RVA: 0x000C900C File Offset: 0x000C720C
|
|
public virtual void InitializeNewDomain(AppDomainSetup appDomainInfo)
|
|
{
|
|
}
|
|
|
|
/// <summary>Returns a <see cref="T:System.Boolean" /> indicating whether the specified operation is allowed in the application domain.</summary>
|
|
/// <returns>true if the host allows the operation specified by <paramref name="state" /> to be performed in the application domain; otherwise false.</returns>
|
|
/// <param name="state">A subclass of <see cref="T:System.Security.SecurityState" /> that identifies the operation whose security status is requested.</param>
|
|
// Token: 0x06003AC7 RID: 15047 RVA: 0x000C9010 File Offset: 0x000C7210
|
|
public virtual bool CheckSecuritySettings(SecurityState state)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
/// <summary>Provides a helper method to create an application domain.</summary>
|
|
/// <returns>A newly created <see cref="T:System.AppDomain" /> object.</returns>
|
|
/// <param name="friendlyName">The friendly name of the domain. </param>
|
|
/// <param name="securityInfo">An <see cref="T:System.Security.Policy.Evidence" /> object that contains evidence mapped through the security policy to establish a top-of-stack permission set.</param>
|
|
/// <param name="appDomainInfo">An <see cref="T:System.AppDomainSetup" /> object that contains application domain initialization information.</param>
|
|
/// <exception cref="T:System.ArgumentNullException">
|
|
/// <paramref name="friendlyName" /> is null. </exception>
|
|
// Token: 0x06003AC8 RID: 15048 RVA: 0x000C9014 File Offset: 0x000C7214
|
|
protected static AppDomain CreateDomainHelper(string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
|
|
{
|
|
return AppDomain.CreateDomain(friendlyName, securityInfo, appDomainInfo);
|
|
}
|
|
|
|
// Token: 0x04001780 RID: 6016
|
|
private ApplicationActivator _activator;
|
|
|
|
// Token: 0x04001781 RID: 6017
|
|
private AppDomainManagerInitializationOptions _flags;
|
|
}
|
|
}
|