AppDomainManager Třída

Definice

Poskytuje spravovaný ekvivalent nespravovaného hostitele.Provides a managed equivalent of an unmanaged host.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
type AppDomainManager = class
    inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
Dědičnost
AppDomainManager
Atributy

Příklady

Následující příklad ukazuje velmi jednoduchou implementaci AppDomainManager.The following example shows a very simple implementation of AppDomainManager.

// To replace the default AppDomainManager, identify  the 
// replacement assembly and replacement type in the 
// APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE  
// environment variables. For example:
// set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
// set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    public class MyAppDomainManager : AppDomainManager
    {
        private HostSecurityManager mySecurityManager = null;

        public MyAppDomainManager()
        {
            Console.WriteLine(" My AppDomain Manager ");
            mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(
                "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " +
                "PublicKeyToken=5659fc598c2a503e", 
                "MyNamespace.MySecurityManager") as HostSecurityManager;
            Console.WriteLine(" Custom Security Manager Created.");
        }

        public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
        {
            Console.Write("Initialize new domain called:  ");
            Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
            InitializationFlags = 
                AppDomainManagerInitializationOptions.RegisterWithHost;
        }

        public override HostSecurityManager HostSecurityManager
        {
            get
            {
                return mySecurityManager;
            }
        }
    }
}
' To replace the default AppDomainManager, identify  the 
' replacement assembly and replacement type in the 
' APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE  
' environment variables. For example:
' set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
' set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Imports System.Collections
Imports System.Net
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Security.Principal
Imports System.Threading
Imports System.Runtime.InteropServices

<assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
<SecurityPermissionAttribute(SecurityAction.LinkDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")> _
Public Class MyAppDomainManager
    Inherits AppDomainManager
    Private mySecurityManager As HostSecurityManager = Nothing
    
    Public Sub New() 
        Console.WriteLine(" My AppDomain Manager ")
        mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap( _
            "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " & _
            "PublicKeyToken=5659fc598c2a503e", "MyNamespace.MySecurityManager")
        Console.WriteLine(" Custom Security Manager Created.")    
    End Sub
    
    Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
        As AppDomainSetup) 
        Console.Write("Initialize new domain called:  ")
        Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
        InitializationFlags = _
            AppDomainManagerInitializationOptions.RegisterWithHost   
    End Sub

    Public Overrides ReadOnly Property HostSecurityManager() _
        As HostSecurityManager 
        Get
            Return mySecurityManager
        End Get
    End Property
End Class

Poznámky

Důležité

Nepoužívejte AppDomainManager ke konfiguraci domény aplikace v ASP.NET.Do not use AppDomainManager to configure an application domain in ASP.NET. V ASP.NET musí být konfigurace zpracována hostitelem.In ASP.NET, configuration must be handled by the host.

AppDomainManager Implementace třídy umožňuje hostující aplikaci účastnit se vytváření nových aplikačních domén.Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. Chcete-li nahradit AppDomainManagervýchozí, identifikujte sestavení a typ náhrady AppDomainManager v < proměnných prostředí APPDOMAIN_MANAGER_ASM a APPDOMAIN_MANAGER_TYPE nebo použijte appDomainManagerAssembly > a appDomainManagerType > prvky v konfiguračním souboru. <To replace the default AppDomainManager, identify the assembly and type of the replacement AppDomainManager in the APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE environment variables, or use the <appDomainManagerAssembly> and <appDomainManagerType> elements in your configuration file. Sestavení musí být plně důvěryhodné a musí být obsaženo v globální mezipaměti sestavení (GAC) nebo v adresáři počáteční aplikace.The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. Názvy typů a sestavení musí být plně kvalifikované v proměnných prostředí.The type and assembly names must be fully qualified in the environment variables. Příklad:For example:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

Důležité

Pokud sestavení, které obsahuje vaši podtřídu AppDomainManager , závisí na sestaveních, která jsou označena atributem podmíněné AllowPartiallyTrustedCallersAttribute (APTCA), je nutné zahrnout tato sestavení do seznamu PartialTrustVisibleAssemblies , který předáte do vlastnosti AppDomainSetuppoužijete k vytvoření aplikačních domén.If the assembly that contains your subclass of AppDomainManager depends on assemblies that are marked with the conditional AllowPartiallyTrustedCallersAttribute (APTCA) attribute, you must include those assemblies in the list that you pass to the PartialTrustVisibleAssemblies property of the AppDomainSetup you use to create application domains. V opačném případě budou sestavení, která jsou označena atributem podmíněného atributu APTCA, zakázána.Otherwise, the assemblies that are marked with the conditional APTCA attribute will be disabled.

AppDomainManager Je spravovaným ekvivalentem nespravovaného hostitele.The AppDomainManager is the managed equivalent of the unmanaged host. Objekt se účastní vytváření nových aplikačních domén v procesu a může přizpůsobit nový AppDomain před spuštěním jiného spravovaného kódu. AppDomainManagerAn AppDomainManager object participates in the creation of new application domains in a process and can customize the new AppDomain before other managed code runs. AppDomainManager Může také poskytovat hostitelské správce, kteří se účastní jiných aspektů provádění společného jazykového modulu runtime.The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. Například AppDomainManager můžeHostSecurityManager identifikovat objekt, který se účastní rozhodnutí zabezpečení domény aplikace.For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

Poznámka

Do FullTrust fullTrustAssemblies konstruktoruametodyInitializeNewDomain mohou být načtena pouze sestavení, jako například sestavení v globální mezipaměti AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) sestavení (GAC) nebo identifikovaná jako v metodě. AppDomainManagerOnly assemblies granted FullTrust, such as assemblies in the global assembly cache or identified as fullTrustAssemblies in the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method can be loaded in the AppDomainManager constructor and the InitializeNewDomain method.

Poznámka

Tato třída obsahuje požadavek propojení a požadavky dědičnosti na úrovni třídy.This class contains a link demand and an inheritance demand at the class level. Výjimka SecurityException je vyvolána, když buď bezprostřední volající, nebo odvozená třída nemá oprávnění infrastruktury.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Podrobnosti o požadavcích na zabezpečení najdete v tématu požadavky na propojení a požadavky dědičnosti.For details about security demands, see Link Demands and Inheritance Demands.

Konstruktory

AppDomainManager()

Inicializuje novou instanci třídy AppDomainManager třídy.Initializes a new instance of the AppDomainManager class.

Vlastnosti

ApplicationActivator

Získá aktivátor aplikace, který zpracovává aktivaci doplňků a aplikací založených na manifestech pro doménu.Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.

EntryAssembly

Získá záznamové sestavení pro aplikaci.Gets the entry assembly for an application.

HostExecutionContextManager

Získá správce kontextu spuštění hostitele, který spravuje tok kontextu spuštění.Gets the host execution context manager that manages the flow of the execution context.

HostSecurityManager

Získá správce zabezpečení hostitele, který se účastní rozhodnutí zabezpečení pro doménu aplikace.Gets the host security manager that participates in security decisions for the application domain.

InitializationFlags

Získá příznaky inicializace pro vlastní správce aplikačních domén.Gets the initialization flags for custom application domain managers.

Metody

CheckSecuritySettings(SecurityState)

Určuje, zda je zadaná operace povolena v doméně aplikace.Indicates whether the specified operation is allowed in the application domain.

CreateDomain(String, Evidence, AppDomainSetup)

Vrátí novou nebo existující doménu aplikace.Returns a new or existing application domain.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Poskytuje pomocnou metodu pro vytvoření domény aplikace.Provides a helper method to create an application domain.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace požadované pro vygenerování proxy serveru, který se používá ke komunikaci se vzdáleným objektem.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Zděděno od MarshalByRefObject)
Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetLifetimeService()

Načte aktuální objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Zděděno od MarshalByRefObject)
GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Zděděno od Object)
InitializeLifetimeService()

Získá objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.Obtains a lifetime service object to control the lifetime policy for this instance.

(Zděděno od MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Inicializuje novou doménu aplikace.Initializes the new application domain.

MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří kopii aktuálního MarshalByRefObject objektu bez podstruktury.Creates a shallow copy of the current MarshalByRefObject object.

(Zděděno od MarshalByRefObject)
ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Zabezpečení

SecurityCriticalAttribute
Vyžaduje úplný vztah důvěryhodnosti pro bezprostředně volajícího.Requires full trust for the immediate caller. Tohoto člena nelze použít v kódu s částečnou důvěryhodností ani v transparentním kódu.This member cannot be used by partially trusted or transparent code.

InheritanceDemand
pro odvozené třídy pro připojení spustitelného kódu do infrastruktury hostování společného jazykového modulu runtime.for derived classes to plug executable code into the common language runtime hosting infrastructure. Přidružený výčet: Infrastructure.Associated enumeration: Infrastructure.

Platí pro