AppDomainManager Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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) |