AppDomainManager Osztály

Definíció

Egy nem felügyelt gazdagép felügyelt megfelelője.

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
Öröklődés
AppDomainManager
Attribútumok

Példák

Az alábbi példa egy nagyon egyszerű implementációt mutat be.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

Megjegyzések

Important

Ne használja AppDomainManager alkalmazástartomány konfigurálásához ASP.NET. A ASP.NET a konfigurációt a gazdagépnek kell kezelnie.

Az osztály megvalósítása lehetővé teszi, AppDomainManager hogy egy üzemeltetési alkalmazás részt vegyen az új alkalmazástartományok létrehozásában. Az alapértelmezett AppDomainManagerlecseréléséhez azonosítsa a csere AppDomainManager szerelvényét és típusát a APPDOMAIN_MANAGER_ASM és APPDOMAIN_MANAGER_TYPE környezeti változókban, vagy használja az <appDomainManagerAssembly> és <az appDomainManagerType> elemeket a konfigurációs fájlban. A szerelvénynek teljes mértékben megbízhatónak kell lennie, és a globális szerelvény-gyorsítótárban vagy a kezdő alkalmazás könyvtárában kell lennie. A típus- és szerelvényneveknek a környezeti változókban teljes mértékben minősítettnek kell lenniük. Például:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Important

Ha az alosztályt AppDomainManager tartalmazó szerelvény a feltételes AllowPartiallyTrustedCallersAttribute (APTCA) attribútummal megjelölt szerelvényektől függ, azokat a szerelvényeket fel kell vennie a listába, amelyeket az PartialTrustVisibleAssemblies alkalmazástartományok létrehozásához használt tulajdonságnak ad átAppDomainSetup. Ellenkező esetben a feltételes APTCA attribútummal megjelölt szerelvények le lesznek tiltva.

Ez AppDomainManager a nem felügyelt gazdagép felügyelt megfelelője. Egy AppDomainManager objektum részt vesz az új alkalmazástartományok létrehozásának folyamatában, és testre szabhatja az újat AppDomain , mielőtt más felügyelt kód fut. Emellett AppDomainManager olyan gazdagépkezelőket is elláthat, akik részt vesznek a közös nyelvi futtatókörnyezet végrehajtásának más aspektusaiban. Egy objektum például azonosíthat egy AppDomainManager objektumot, HostSecurityManager amely részt vesz az alkalmazástartomány biztonsági döntéseiben.

Note

A konstruktorba és FullTrust a metódusba csak a megadott fullTrustAssembliesszerelvények tölthetők be, például a globális szerelvény-gyorsítótárban AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) lévő vagy a AppDomainManager metódusban azonosított InitializeNewDomain szerelvények.

Note

Ez az osztály egy kapcsolati és egy öröklési igényt tartalmaz az osztály szintjén. Az A SecurityException akkor jön létre, ha az azonnali hívó vagy a származtatott osztály nem rendelkezik infrastruktúra-engedéllyel. A biztonsági követelményekkel kapcsolatos részletekért tekintse meg az Igények csatolása és az Öröklési igényekhivatkozása című témakört.

Konstruktorok

Name Description
AppDomainManager()

Inicializálja a AppDomainManager osztály új példányát.

Tulajdonságok

Name Description
ApplicationActivator

Lekéri a tartomány bővítményeinek és jegyzékalapú alkalmazásainak aktiválását kezelő alkalmazásaktivátort.

EntryAssembly

Lekéri egy alkalmazás belépési szerelvényét.

HostExecutionContextManager

Lekéri a végrehajtási környezet folyamatát kezelő gazdagép-végrehajtási környezetkezelőt.

HostSecurityManager

Lekéri az alkalmazástartomány biztonsági döntéseiben részt vevő gazdagép biztonsági kezelőjét.

InitializationFlags

Lekéri az egyéni alkalmazástartomány-kezelők inicializálási jelzőit.

Metódusok

Name Description
CheckSecuritySettings(SecurityState)

Azt jelzi, hogy a megadott művelet engedélyezve van-e az alkalmazástartományban.

CreateDomain(String, Evidence, AppDomainSetup)

Új vagy meglévő alkalmazástartományt ad vissza.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Segédmetódust biztosít egy alkalmazástartomány létrehozásához.

CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Inicializálja az új alkalmazástartományt.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: