AppDomainManager Sınıf

Tanım

Yönetilmeyen konağın yönetilen eşdeğerini sağlar.

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
Devralma
AppDomainManager
Öznitelikler

Örnekler

Aşağıdaki örnekte, uygulamasının çok basit bir uygulaması gösterilmektedir 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

Açıklamalar

Önemli

ASP.NET'da uygulama etki alanını yapılandırmak için kullanmayın AppDomainManager . ASP.NET yapılandırmanın konak tarafından işlenmesi gerekir.

sınıfının uygulanması AppDomainManager , bir barındırma uygulamasının yeni uygulama etki alanlarının oluşturulmasına katılmasına olanak tanır. Varsayılan AppDomainManagerdeğerini değiştirmek için, APPDOMAIN_MANAGER_ASM ve APPDOMAIN_MANAGER_TYPE ortam değişkenlerinde değiştirmenin AppDomainManager derlemesini ve türünü tanımlayın veya yapılandırma dosyanızdaki appDomainManagerAssembly> ve appDomainManagerType öğelerini kullanın<.>< Derlemeye tam olarak güvenilmeli ve genel derleme önbelleğinde veya başlangıç uygulamasının dizininde yer almalıdır. Tür ve derleme adları ortam değişkenlerinde tam niteliğe sahip olmalıdır. Örnek:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Önemli

Alt sınıfınızı AppDomainManager içeren derleme koşullu AllowPartiallyTrustedCallersAttribute (APTCA) özniteliğiyle işaretlenmiş derlemelere bağlıysa, uygulama etki alanları oluşturmak için kullandığınız özelliğine PartialTrustVisibleAssembliesAppDomainSetup geçirdiğiniz derlemeleri listeye eklemeniz gerekir. Aksi takdirde, koşullu APTCA özniteliğiyle işaretlenmiş derlemeler devre dışı bırakılır.

AppDomainManager yönetilmeyen konağın yönetilen eşdeğeridir. Bir AppDomainManager nesne, bir işlemde yeni uygulama etki alanlarının oluşturulmasına katılır ve diğer yönetilen kod çalışmadan önce yeniyi AppDomain özelleştirebilir. , AppDomainManager ortak dil çalışma zamanı yürütmenin diğer yönlerine katılan konak yöneticileri de sağlayabilir. Örneğin, bir AppDomainManager , uygulama etki alanının güvenlik kararlarına katılan bir HostSecurityManager nesneyi tanımlayabilir.

Not

Yalnızca genel derleme önbelleğindeki derlemeler gibi verilen FullTrustveya yönteminde AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) olarak fullTrustAssemblies tanımlanan derlemeler oluşturucuya ve yöntemine AppDomainManagerInitializeNewDomain yüklenebilir.

Not

Bu sınıf, sınıf düzeyinde bir bağlantı talebi ve devralma talebi içerir. Hemen SecurityException çağıranın veya türetilen sınıfın altyapı izni olmadığında oluşturulur. Güvenlik talepleri hakkında ayrıntılı bilgi için bkz. Talepleri ve Devralma TalepleriniBağlama.

Oluşturucular

AppDomainManager()

AppDomainManager sınıfının yeni bir örneğini başlatır.

Özellikler

ApplicationActivator

Etki alanı için eklentilerin ve bildirim tabanlı uygulamaların etkinleştirilmesini işleyen uygulama etkinleştiricisini alır.

EntryAssembly

Bir uygulama için giriş derlemesini alır.

HostExecutionContextManager

Yürütme bağlamının akışını yöneten konak yürütme bağlam yöneticisini alır.

HostSecurityManager

Uygulama etki alanı için güvenlik kararlarına katılan konak güvenlik yöneticisini alır.

InitializationFlags

Özel uygulama etki alanı yöneticileri için başlatma bayraklarını alır.

Yöntemler

CheckSecuritySettings(SecurityState)

Belirtilen işleme uygulama etki alanında izin verilip verilmeyeceğini gösterir.

CreateDomain(String, Evidence, AppDomainSetup)

Yeni veya var olan bir uygulama etki alanını döndürür.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Uygulama etki alanı oluşturmak için bir yardımcı yöntem sağlar.

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Yeni uygulama etki alanını başlatır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır