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é

Nepoužívejte AppDomainManager ke konfiguraci domény aplikace v ASP.NET. V ASP.NET musí konfiguraci zpracovat 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, určete 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í nebo adresáři spouštěcí aplikace. Názvy typů 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í, které obsahuje 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é poskytovat správcům hostitelů, kteří se podílejí na jiných aspektech spouštění modulu CLR (Common Language Runtime). Může například identifikovat HostSecurityManager objekt, AppDomainManager který se podílí na rozhodování o zabezpečení domény aplikace.

Poznámka

Do konstruktoru AppDomainManager a metody lze načíst pouze sestavení udělená FullTrust, například sestavení v mezipaměti globálních InitializeNewDomain sestavení nebo označená jako fullTrustAssemblies v AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodě.

Poznámka

Tato třída obsahuje požadavek odkazu 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 Požadavky propojení a Požadavky na dědičnost.

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á vstupní sestavení 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 podílí na rozhodování 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 v doméně aplikace povolená zadaná operace.

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 používaného 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 objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

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

Získá aktuální Type instanci.

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

Získá objekt služby životnosti, 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