Sdílet prostřednictvím


AppDomainManager Třída

Definice

Poskytuje spravovaný ekvivalent nespravovaného hostitele.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomainManager = class
    inherit MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
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

// 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.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    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é

Ke konfiguraci domény aplikace v ASP.NET nepoužívejte AppDomainManager . V ASP.NET musí konfiguraci zpracovávat hostitel.

AppDomainManager Implementace třídy umožňuje hostitelské aplikaci podílet se na vytváření nových domén aplikace. Chcete-li nahradit výchozí AppDomainManager, identifikujte sestavení a typ nahrazení AppDomainManager v APPDOMAIN_MANAGER_ASM a APPDOMAIN_MANAGER_TYPE proměnných prostředí nebo použijte <v konfiguračním souboru elementy appDomainManagerAssembly> a <appDomainManagerType> . Sestavení musí být plně důvěryhodné a musí být obsaženo v globální mezipaměti sestavení (GPA) nebo adresáři spouštěcí aplikace. Názvy typu a sestavení musí být plně kvalifikované v proměnných prostředí. Příklad:

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í obsahující vaši podtřídu AppDomainManager závisí na sestaveních, která jsou označena podmíněným AllowPartiallyTrustedCallersAttribute atributem (APTCA), musíte tato sestavení zahrnout do PartialTrustVisibleAssemblies seznamu, který předáte vlastnosti AppDomainSetup používané k vytvoření domén aplikace. V opačném případě budou sestavení označená podmíněným atributem APTCA zakázána.

Je AppDomainManager spravovaný ekvivalent nespravovaného hostitele. Objekt AppDomainManager se podílí na vytváření nových domén aplikace v procesu a může přizpůsobit nové AppDomain před spuštěním jiného spravovaného kódu. Může AppDomainManager také poskytnout správcům hostitelů, kteří se podílejí na dalších aspektech provádění modulu CLR (Common Language Runtime). Může například identifikovat HostSecurityManager objekt, AppDomainManager který se podílí na bezpečnostních rozhodnutích domény aplikace.

Poznámka

V konstruktoru a InitializeNewDomain metodě lze načíst AppDomainManager pouze sestavení , FullTrustjako jsou například sestavení v globální mezipaměti sestavení (GPA) nebo identifikovaná jako fullTrustAssemblies v AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodě .

Poznámka

Tato třída obsahuje požadavek na propojení a požadavek dědičnosti na úrovni třídy. Vyvolá SecurityException se, když přímý volající nebo odvozená třída nemá oprávnění k infrastruktuře. Podrobnosti o požadavcích na zabezpečení najdete v tématu Propojení požadavků a Požadavků dědičnosti.

Konstruktory

AppDomainManager()

Inicializuje novou instanci AppDomainManager třídy .

Vlastnosti

ApplicationActivator

Získá aktivátor aplikace, který zpracovává aktivaci doplňků a aplikací založených na manifestu pro doménu.

EntryAssembly

Získá sestavení položky pro aplikaci.

HostExecutionContextManager

Získá správce kontextu spuštění hostitele, který spravuje tok kontextu spuštění.

HostSecurityManager

Získá správce zabezpečení hostitele, který se účastní rozhodnutí o zabezpečení pro doménu aplikace.

InitializationFlags

Získá inicializační příznaky pro vlastní správce domény aplikace.

Metody

CheckSecuritySettings(SecurityState)

Určuje, jestli je zadaná operace povolená v doméně aplikace.

CreateDomain(String, Evidence, AppDomainSetup)

Vrátí novou nebo existující doménu aplikace.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Poskytuje pomocnou metodu pro vytvoření domény aplikace.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem.

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

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci.

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

Type Získá z aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci.

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

Inicializuje novou doménu aplikace.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

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

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro