Files
2026-06-04 11:42:34 +02:00

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;
}
}