Udostępnij za pośrednictwem


AppDomainManager Klasa

Definicja

Zapewnia zarządzany odpowiednik niezarządzanego hosta.

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
Dziedziczenie
AppDomainManager
Atrybuty

Przykłady

W poniższym przykładzie przedstawiono bardzo prostą implementację elementu 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

Uwagi

Ważne

Nie należy używać AppDomainManager do konfigurowania domeny aplikacji w ASP.NET. W ASP.NET konfiguracja musi być obsługiwana przez hosta.

Implementacja AppDomainManager klasy umożliwia aplikacji hostingowej uczestnictwo w tworzeniu nowych domen aplikacji. Aby zastąpić wartość domyślną AppDomainManager, zidentyfikuj zestaw i typ zastąpienia AppDomainManager w zmiennych środowiskowych APPDOMAIN_MANAGER_ASM i APPDOMAIN_MANAGER_TYPE lub użyj <elementów appDomainManagerAssembly> i <appDomainManagerType> w pliku konfiguracji. Zestaw musi być w pełni zaufany i zawarty w globalnej pamięci podręcznej zestawów lub katalogu początkowej aplikacji. Nazwy typów i zestawów muszą być w pełni kwalifikowane w zmiennych środowiskowych. Na przykład:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Ważne

Jeśli zestaw zawierający podklasę AppDomainManager zależy od zestawów oznaczonych atrybutem warunkowym AllowPartiallyTrustedCallersAttribute (APTCA), należy uwzględnić te zestawy na liście, które są przekazywane do właściwości używanej AppDomainSetup do PartialTrustVisibleAssemblies tworzenia domen aplikacji. W przeciwnym razie zestawy oznaczone atrybutem APTCA warunkowego zostaną wyłączone.

Jest AppDomainManager to zarządzany odpowiednik niezarządzanego hosta. Obiekt AppDomainManager uczestniczy w tworzeniu nowych domen aplikacji w procesie i może dostosować nowy AppDomain przed innymi przebiegami kodu zarządzanego. Może AppDomainManager również dostarczać menedżerom hostów, którzy uczestniczą w innych aspektach wykonywania środowiska uruchomieniowego języka wspólnego. Można na przykład AppDomainManager zidentyfikować HostSecurityManager obiekt, który uczestniczy w decyzjach dotyczących zabezpieczeń domeny aplikacji.

Uwaga

Tylko zestawy przyznane FullTrust, takie jak zestawy w globalnej pamięci podręcznej zestawów lub zidentyfikowane fullTrustAssemblies jako w AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodzie, można załadować w konstruktorze i metodzie AppDomainManagerInitializeNewDomain .

Uwaga

Ta klasa zawiera żądanie łącza i żądanie dziedziczenia na poziomie klasy. Element jest SecurityException zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Łączenie żądań i żądań dziedziczenia.

Konstruktory

AppDomainManager()

Inicjuje nowe wystąpienie klasy AppDomainManager.

Właściwości

ApplicationActivator

Pobiera aktywator aplikacji, który obsługuje aktywację dodatków i aplikacji opartych na manifeście dla domeny.

EntryAssembly

Pobiera zestaw wejścia dla aplikacji.

HostExecutionContextManager

Pobiera menedżera kontekstu wykonywania hosta, który zarządza przepływem kontekstu wykonywania.

HostSecurityManager

Pobiera menedżera zabezpieczeń hosta, który uczestniczy w decyzjach dotyczących zabezpieczeń domeny aplikacji.

InitializationFlags

Pobiera flagi inicjowania dla niestandardowych menedżerów domen aplikacji.

Metody

CheckSecuritySettings(SecurityState)

Wskazuje, czy określona operacja jest dozwolona w domenie aplikacji.

CreateDomain(String, Evidence, AppDomainSetup)

Zwraca nową lub istniejącą domenę aplikacji.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Udostępnia metodę pomocnika do utworzenia domeny aplikacji.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Inicjuje nową domenę aplikacji.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy