Aracılığıyla paylaş


AppDomainManager Sınıf

Tanım

Yönetilmeyen bir 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 ç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<.>< Derleme tam olarak güvenilir olmalı 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 olarak nitelenmelidir. Örneğin:

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ıştırmadan ö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.

Uyarı

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 AppDomainManager ve yöntemine InitializeNewDomain yüklenebilir.

Uyarı

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

Oluşturucular

Name Description
AppDomainManager()

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

Özellikler

Name Description
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

Name Description
CheckSecuritySettings(SecurityState)

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

CreateDomain(String, Evidence, AppDomainSetup)

Yeni veya mevcut bir uygulama etki alanı 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()

Geçerli örneğin Type 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 Objectbasit 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 bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır