İngilizce dilinde oku

Aracılığıyla paylaş


AppDomainManager Sınıf

Tanım

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

C#
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
Devralma
AppDomainManager
Öznitelikler

Örnekler

Aşağıdaki örnekte uygulamasının çok basit bir uygulaması gösterilmektedir AppDomainManager.

C#
// 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;
            }
        }
    }
}

Açıklamalar

Önemli

ASP.NET'de 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ızda appDomainManagerAssembly> ve appDomainManagerType öğelerini kullanın<.>< Derlemeye tam olarak güvenilmeli ve genel derleme önbelleğinde veya başlangıç uygulamasının dizininde bulunmalıdır. Tür ve derleme adları, ortam değişkenlerinde tam olarak nitelenmelidir. Ö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ğımlı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ütmesinin 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 bütünleştirilmiş kod ö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 bir oluşturulur. Güvenlik talepleri hakkında ayrıntılı bilgi için bkz. Bağlantı Talepleri ve Devralma Talepleri.

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 yardımcı bir 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

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1