AppDomain Класс

Определение

Представляет домен приложения, являющийся изолированной средой, в которой выполняются приложения. Этот класс не наследуется.

public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject
type AppDomain = class
    inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
Наследование
Атрибуты
Реализации

Примеры

В этом примере показано, как создать новый AppDomainэкземпляр типа и AppDomainвзаимодействовать с объектом этого типа. Кроме того, в этом примере показано, как выгрузить AppDomain объект, вызывающий сбор мусора.

using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain 
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
    //  Call this method via a proxy.
    void SomeMethod(String^ callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup^ ads = AppDomain::CurrentDomain->SetupInformation;
        Console::WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", 
            ads->ApplicationName, 
            ads->ApplicationBase, 
            ads->ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name 
        // of the second domain.
        // NOTE: The application's thread has transitioned between 
        // AppDomains.
        Console::WriteLine("Calling from '{0}' to '{1}'.", 
            callingDomainName, 
            Thread::GetDomain()->FriendlyName
        );
    };
};

void main()
{
    // Get and display the friendly name of the default AppDomain.
    String^ callingDomainName = Thread::GetDomain()->FriendlyName;
    Console::WriteLine(callingDomainName);

    // Get and display the full name of the EXE assembly.
    String^ exeAssembly = Assembly::GetEntryAssembly()->FullName;
    Console::WriteLine(exeAssembly);

    // Construct and initialize settings for a second AppDomain.
    AppDomainSetup^ ads = gcnew AppDomainSetup();
    ads->ApplicationBase = AppDomain::CurrentDomain->BaseDirectory;

    ads->DisallowBindingRedirects = false;
    ads->DisallowCodeDownload = true;
    ads->ConfigurationFile = 
        AppDomain::CurrentDomain->SetupInformation->ConfigurationFile;

    // Create the second AppDomain.
    AppDomain^ ad2 = AppDomain::CreateDomain("AD #2", 
        AppDomain::CurrentDomain->Evidence, ads);

    // Create an instance of MarshalbyRefType in the second AppDomain. 
    // A proxy to the object is returned.
    MarshalByRefType^ mbrt = 
        (MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
            exeAssembly, 
            MarshalByRefType::typeid->FullName
        );

    // Call a method on the object via the proxy, passing the 
    // default AppDomain's friendly name in as a parameter.
    mbrt->SomeMethod(callingDomainName);

    // Unload the second AppDomain. This deletes its object and 
    // invalidates the proxy object.
    AppDomain::Unload(ad2);
    try
    {
        // Call the method again. Note that this time it fails 
        // because the second AppDomain was unloaded.
        mbrt->SomeMethod(callingDomainName);
        Console::WriteLine("Sucessful call.");
    }
    catch(AppDomainUnloadedException^)
    {
        Console::WriteLine("Failed call; this is expected.");
    }
}

/* This code produces output similar to the following: 

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */
using System;
using System.Reflection;
using System.Threading;

class Module1
{
    public static void Main()
    {
        // Get and display the friendly name of the default AppDomain.
        string callingDomainName = Thread.GetDomain().FriendlyName;
        Console.WriteLine(callingDomainName);

        // Get and display the full name of the EXE assembly.
        string exeAssembly = Assembly.GetEntryAssembly().FullName;
        Console.WriteLine(exeAssembly);

        // Construct and initialize settings for a second AppDomain.
        AppDomainSetup ads = new AppDomainSetup();
        ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;

        ads.DisallowBindingRedirects = false;
        ads.DisallowCodeDownload = true;
        ads.ConfigurationFile =
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

        // Create the second AppDomain.
        AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads);

        // Create an instance of MarshalbyRefType in the second AppDomain.
        // A proxy to the object is returned.
        MarshalByRefType mbrt =
            (MarshalByRefType) ad2.CreateInstanceAndUnwrap(
                exeAssembly,
                typeof(MarshalByRefType).FullName
            );

        // Call a method on the object via the proxy, passing the
        // default AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName);

        // Unload the second AppDomain. This deletes its object and
        // invalidates the proxy object.
        AppDomain.Unload(ad2);
        try
        {
            // Call the method again. Note that this time it fails
            // because the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName);
            Console.WriteLine("Sucessful call.");
        }
        catch(AppDomainUnloadedException)
        {
            Console.WriteLine("Failed call; this is expected.");
        }
    }
}

// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
    //  Call this method via a proxy.
    public void SomeMethod(string callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
            ads.ApplicationName,
            ads.ApplicationBase,
            ads.ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name
        // of the second domain.
        // NOTE: The application's thread has transitioned between
        // AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.",
            callingDomainName,
            Thread.GetDomain().FriendlyName
        );
    }
}

/* This code produces output similar to the following:

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */
open System
open System.Reflection
open System.Threading

// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
type MarshalByRefType() =
    inherit MarshalByRefObject()
    
    //  Call this method via a proxy.
    member _.SomeMethod(callingDomainName) =
        // Get this AppDomain's settings and display some of them.
        let ads = AppDomain.CurrentDomain.SetupInformation
        printfn $"AppName={ads.ApplicationName}, AppBase={ads.ApplicationBase}, ConfigFile={ads.ConfigurationFile}"

        // Display the name of the calling AppDomain and the name
        // of the second domain.
        // NOTE: The application's thread has transitioned between
        // AppDomains.
        printfn $"Calling from '{callingDomainName}' to '{Thread.GetDomain().FriendlyName}'."

// Get and display the friendly name of the default AppDomain.
let callingDomainName = Thread.GetDomain().FriendlyName
printfn $"{callingDomainName}"

// Get and display the full name of the EXE assembly.
let exeAssembly = Assembly.GetEntryAssembly().FullName
printfn $"{exeAssembly}"

// Construct and initialize settings for a second AppDomain.
let ads = AppDomainSetup()
ads.ApplicationBase <- AppDomain.CurrentDomain.BaseDirectory

ads.DisallowBindingRedirects <- false
ads.DisallowCodeDownload <- true
ads.ConfigurationFile <-
    AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

// Create the second AppDomain.
let ad2 = AppDomain.CreateDomain("AD #2", null, ads)

// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
let mbrt =
    ad2.CreateInstanceAndUnwrap(
        exeAssembly,
        typeof<MarshalByRefType>.FullName) :?> MarshalByRefType

// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt.SomeMethod callingDomainName

// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain.Unload ad2
try
    // Call the method again. Note that this time it fails
    // because the second AppDomain was unloaded.
    mbrt.SomeMethod callingDomainName
    printfn "Sucessful call."
with :? AppDomainUnloadedException ->
    printfn "Failed call this is expected."

(* This code produces output similar to the following:

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call this is expected.
 *)
Imports System.Reflection
Imports System.Threading

Module Module1
    Sub Main()

        ' Get and display the friendly name of the default AppDomain.
        Dim callingDomainName As String = Thread.GetDomain().FriendlyName
        Console.WriteLine(callingDomainName)

        ' Get and display the full name of the EXE assembly.
        Dim exeAssembly As String = [Assembly].GetEntryAssembly().FullName
        Console.WriteLine(exeAssembly)

        ' Construct and initialize settings for a second AppDomain.
        Dim ads As New AppDomainSetup()
        ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
        ads.DisallowBindingRedirects = False
        ads.DisallowCodeDownload = True
        ads.ConfigurationFile = _
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

        ' Create the second AppDomain.
        Dim ad2 As AppDomain = AppDomain.CreateDomain("AD #2", Nothing, ads)

        ' Create an instance of MarshalbyRefType in the second AppDomain. 
        ' A proxy to the object is returned.
        Dim mbrt As MarshalByRefType = CType( _
            ad2.CreateInstanceAndUnwrap(exeAssembly, _
                 GetType(MarshalByRefType).FullName), MarshalByRefType)

        ' Call a method on the object via the proxy, passing the default 
        ' AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName)

        ' Unload the second AppDomain. This deletes its object and 
        ' invalidates the proxy object.
        AppDomain.Unload(ad2)
        Try
            ' Call the method again. Note that this time it fails because 
            ' the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName)
            Console.WriteLine("Sucessful call.")
        Catch e As AppDomainUnloadedException
            Console.WriteLine("Failed call; this is expected.")
        End Try

    End Sub
End Module

' Because this class is derived from MarshalByRefObject, a proxy 
' to a MarshalByRefType object can be returned across an AppDomain 
' boundary.
Public Class MarshalByRefType
    Inherits MarshalByRefObject

    '  Call this method via a proxy.
    Public Sub SomeMethod(ByVal callingDomainName As String)

        ' Get this AppDomain's settings and display some of them.
        Dim ads As AppDomainSetup = AppDomain.CurrentDomain.SetupInformation
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", _
            ads.ApplicationName, ads.ApplicationBase, ads.ConfigurationFile)

        ' Display the name of the calling AppDomain and the name 
        ' of the second domain.
        ' NOTE: The application's thread has transitioned between 
        ' AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.", _
            callingDomainName, Thread.GetDomain().FriendlyName)
    End Sub
End Class

'This code produces output similar to the following:
' 
' AppDomainX.exe
' AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
' AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
' Calling from 'AppDomainX.exe' to 'AD #2'.
' Failed call; this is expected.

Комментарии

Домены приложений, представленные AppDomain объектами, помогают обеспечить изоляцию, выгрузку и границы безопасности для выполнения управляемого кода.

  • Используйте домены приложений для изоляции задач, которые могут привести к сносу процесса. Если состояние AppDomain выполняемой задачи становится нестабильным, AppDomain его можно выгрузить, не затрагивая процесс. Это важно, когда процесс должен выполняться в течение длительного периода без перезапуска. Вы также можете использовать домены приложений для изоляции задач, которые не должны совместно использовать данные.

  • Если сборка загружается в домен приложения по умолчанию, ее нельзя выгрузить из памяти во время выполнения процесса. Однако если открыть второй домен приложения для загрузки и выполнения сборки, сборка выгружается при выгрузке этого домена приложения. Используйте этот метод, чтобы свести к минимуму рабочий набор длительных процессов, которые иногда используют большие библиотеки DLL.

Примечание

В .NET Core AppDomain реализация ограничена проектированием и не обеспечивает изоляцию, выгрузку или границы безопасности. Для .NET Core существует ровно одинAppDomain. Изоляция и выгрузка предоставляются через AssemblyLoadContext. Границы безопасности должны быть предоставлены границами процессов и соответствующими методами удаленного взаимодействия.

Несколько доменов приложений могут выполняться в одном процессе; однако между доменами приложений и потоками не существует корреляции "один к одному". Несколько потоков могут принадлежать одному домену приложения, и хотя данный поток не ограничен одним доменом приложения в любой момент времени, поток выполняется в одном домене приложения.

Домены приложений CreateDomain создаются с помощью метода. AppDomain экземпляры используются для загрузки и выполнения сборок (Assembly). Если объект AppDomain больше не используется, его можно выгрузить.

Класс AppDomain реализует набор событий, позволяющих приложениям реагировать при загрузке сборки, когда будет выгружен домен приложения или возникает необработанное исключение.

Дополнительные сведения об использовании доменов приложений см. в разделе "Домены приложений".

Этот класс реализует MarshalByRefObject_AppDomainинтерфейсы и IEvidenceFactory интерфейсы.

Никогда не следует создавать переносимую оболочку для AppDomain объекта. Это может опубликовать удаленную ссылку на это AppDomain, предоставляя такие методы, как CreateInstance удаленный доступ и эффективно уничтожая безопасность доступа к коду для этого AppDomain. Злоумышленники, подключающиеся к удаленному, AppDomain могут получить доступ к любому ресурсу, AppDomain к которому имеет доступ. Не создавайте переносимые оболочки для любого типа, расширяющегося MarshalByRefObject и реализующего методы, которые могут использоваться вредоносными клиентами для обхода системы безопасности.

Внимание!

Значением по умолчанию для AppDomainSetup.DisallowCodeDownload свойства является false. Этот параметр небезопасн для служб. Чтобы предотвратить загрузку частично доверенного кода служб, задайте для этого свойства trueзначение .

Свойства

ActivationContext

Возвращает контекст активации по умолчанию для текущего домена приложения.

ApplicationIdentity

Возвращает удостоверение приложения в данном домене приложения.

ApplicationTrust

Возвращает информацию, описывающую разрешения, предоставленные приложению, и то, имеет ли приложение уровень доверия, позволяющий ему выполняться.

BaseDirectory

Возвращает базовый каталог, в котором распознаватель сборок производит поиск.

CurrentDomain

Возвращает текущий домен приложения для текущего объекта Thread.

DomainManager

Возвращает диспетчер домена, предоставленный средой размещения при инициализации домена приложения.

DynamicDirectory

Возвращает каталог, в котором распознаватель сборок производит поиск динамически созданных сборок.

Evidence

Возвращает свидетельство Evidence, связанное с этим доменом приложения.

FriendlyName

Возвращает понятное имя этого домена приложения.

Id

Возвращает целое число, однозначно идентифицирующее домен приложения в процессе.

IsFullyTrusted

Получает значение, указывающее, выполняются ли сборки, загруженные в текущий домен приложения, с полным доверием.

IsHomogenous

Возвращает значение, указывающее, имеет ли текущий домен приложения набор разрешений, которые предоставляются всем сборкам, загружаемым в домен приложения.

MonitoringIsEnabled

Получает или задает значение, указывающее, включен ли мониторинг ЦП и памяти доменов приложений для текущего процесса. После того, как мониторинг для процесса включен, отключить его невозможно.

MonitoringSurvivedMemorySize

Возвращает количество байтов, оставшихся после последнего сбора, и про которые известно, что на них ссылается текущий домен приложения.

MonitoringSurvivedProcessMemorySize

Получает общее количество байтов, оставшихся после последнего сбора для всех доменов приложений в процессе.

MonitoringTotalAllocatedMemorySize

Возвращает общий размер в байтах для всех операций выделения памяти, выполненных доменом приложения с момента его создания, без вычитания собранной памяти.

MonitoringTotalProcessorTime

Получает общее процессорное время, использованное всеми потоками при выполнении в текущем домене приложения с момента запуска процесса.

PermissionSet
Является устаревшей.

Возвращает набор разрешений изолированного домена приложения.

RelativeSearchPath

Возвращает путь к каталогу, находящемуся в базовом каталоге, где распознаватель сборок будет производить поиск закрытых сборок.

SetupInformation

Возвращает сведения о конфигурации домена приложения для этого экземпляра.

ShadowCopyFiles

Возвращает указание на то, настроен ли домен приложения для теневого копирования файлов.

Методы

AppendPrivatePath(String)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Добавляет указанное имя каталога к закрытому списку путей.

ApplyPolicy(String)

Возвращает отображаемое имя сборки после применения политики.

ClearPrivatePath()
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Сбрасывает путь, указывающий на размещение закрытых сборок, присваивая ему пустую строку ("").

ClearShadowCopyPath()
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Сбрасывает список каталогов, содержащих теневые копии сборок, присваивая ему пустую строку ("").

CreateComInstanceFrom(String, String)

Создает новый экземпляр заданного типа COM. Параметры задают имя файла сборки, содержащей этот тип, и имя типа.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Создает новый экземпляр заданного типа COM. Параметры задают имя файла сборки, содержащей этот тип, и имя типа.

CreateDomain(String)
Является устаревшей.

Создает новый домен приложения с заданным именем.

CreateDomain(String, Evidence)

Создает новый домен приложения с заданным именем с помощью предоставленного свидетельства.

CreateDomain(String, Evidence, AppDomainSetup)

Создает новый домен приложения с использованием заданного имени, свидетельства и сведений об установке домена приложения.

CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])

Создает новый домен приложения с использованием заданного имени, свидетельства, сведений об установке домена приложения, используемого по умолчанию набора разрешений и массива сборок с полным доверием.

CreateDomain(String, Evidence, String, String, Boolean)

Создает новый домен приложения с заданным именем с использованием свидетельства, пути к базовой папке приложения, относительного пути поиска и параметра, указывающего, должна ли загружаться теневая копия сборки в домен приложения.

CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[])

Создает новый домен приложения с заданным именем с использованием свидетельства, пути к базовой папке приложения, относительного пути поиска и параметра, указывающего, должна ли загружаться теневая копия сборки в домен приложения. Задает метод обратного вызова, вызываемый, когда инициализируется домен приложения, и массив строковых аргументов для передачи методу обратного вызова.

CreateInstance(String, String)

Создает новый экземпляр заданного типа, определенного в указанной сборке.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает новый экземпляр заданного типа, определенного в указанной сборке. Параметры определяют средство связывания, флаги привязки, аргументы конструктора, сведения, связанные с языком и региональными параметрами, используемые для интерпретации аргументов, и необязательные атрибуты активации.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Является устаревшей.
Является устаревшей.

Создает новый экземпляр заданного типа, определенного в указанной сборке. Параметры определяют средство связывания, флаги привязки, аргументы конструктора, сведения, связанные с языком и региональными параметрами, используемые для интерпретации аргументов, атрибуты активации и авторизацию для создания типа.

CreateInstance(String, String, Object[])

Создает новый экземпляр заданного типа, определенного в указанной сборке. Параметр определяет массив атрибутов активации.

CreateInstanceAndUnwrap(String, String)

Создает новый экземпляр заданного типа. Параметры задают сборку, где определен тип, и имя типа.

CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает новый экземпляр заданного типа, определенного в заданной сборке, указывая, игнорируется ли регистр имени типа; атрибуты привязки и средство привязки, используемые для выбора создаваемого типа; аргументы конструктора; язык и региональные параметры; и атрибуты активации.

CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Является устаревшей.
Является устаревшей.

Создает новый экземпляр заданного типа. Параметры определяют имя типа, а также способ его поиска и создания.

CreateInstanceAndUnwrap(String, String, Object[])

Создает новый экземпляр заданного типа. Параметры задают сборку, где определен тип, имя типа и массив атрибутов активации.

CreateInstanceFrom(String, String)

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Является устаревшей.
Является устаревшей.

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFrom(String, String, Object[])

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFromAndUnwrap(String, String)

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает новый экземпляр заданного типа, определенного в заданном файле сборки, указывая, игнорируется ли регистр имени типа; атрибуты привязки и средство привязки, используемые для выбора создаваемого типа; аргументы конструктора; язык и региональные параметры; и атрибуты активации.

CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Является устаревшей.
Является устаревшей.

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateInstanceFromAndUnwrap(String, String, Object[])

Создает новый экземпляр заданного типа, определенного в указанном файле сборки.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Определяет динамическую сборку с указанным именем и режимом доступа.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа и свидетельства.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, свидетельства и запросов разрешений.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Определяет динамическую сборку с указанным именем, режимом доступа и настраиваемыми атрибутами.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource)

Определяет динамическую сборку с помощью указанного имени, режима доступа и настраиваемых атрибутов, а также используя заданный источник для контекста безопасности.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа и запросов разрешений.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Определяет динамическую сборку с помощью указанного имени, режима доступа и каталога хранения.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения и варианта синхронизации.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения и свидетельства.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения, свидетельства и запросов разрешений.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения, свидетельства, запросов разрешений и параметра синхронизации.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения, свидетельства, запросов разрешений, параметра синхронизации и настраиваемых атрибутов.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)
Является устаревшей.
Является устаревшей.

Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранения и запросов разрешений.

DoCallBack(CrossAppDomainDelegate)

Выполняет код в другом домене приложения, который определен заданным делегатом.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
ExecuteAssembly(String)

Выполняет сборку, содержащуюся в указанном файле.

ExecuteAssembly(String, Evidence)
Является устаревшей.
Является устаревшей.

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства.

ExecuteAssembly(String, Evidence, String[])
Является устаревшей.
Является устаревшей.

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства и аргументов.

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)
Является устаревшей.
Является устаревшей.

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства, аргументов, хэш-значения и хэш-алгоритма.

ExecuteAssembly(String, String[])

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов.

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)
Является устаревшей.

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов, хэш-значения и хэш-алгоритма.

ExecuteAssemblyByName(AssemblyName, Evidence, String[])
Является устаревшей.
Является устаревшей.

Выполняет сборку с заданным AssemblyName с использованием указанного свидетельства и аргументов.

ExecuteAssemblyByName(AssemblyName, String[])

Выполняет сборку с заданным AssemblyName, используя указанные аргументы.

ExecuteAssemblyByName(String)

Выполняет сборку, определенную ее отображаемым именем.

ExecuteAssemblyByName(String, Evidence)
Является устаревшей.
Является устаревшей.

Выполняет сборку с заданным отображаемым именем с использованием заданного свидетельства.

ExecuteAssemblyByName(String, Evidence, String[])
Является устаревшей.
Является устаревшей.

Выполняет сборку с заданным отображаемым именем с использованием заданного свидетельства и аргументов.

ExecuteAssemblyByName(String, String[])

Выполняет сборку с заданным отображаемым именем с использованием заданных аргументов.

GetAssemblies()

Возвращает сборки, которые были загружены в контекст выполнения этого домена приложения.

GetCurrentThreadId()
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Получает текущий идентификатор потока.

GetData(String)

Возвращает значение, сохраненное в текущем домене приложения для заданного имени.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Является устаревшей.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetType()

Возвращает тип текущего экземпляра.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()

Предоставляет объекту AppDomain бесконечное время существования, предотвращая создание аренды.

InitializeLifetimeService()
Является устаревшей.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
IsCompatibilitySwitchSet(String)

Возвращает логическое значение, допускающее значения NULL, которое указывает, установлены ли какие-либо переключатели совместимости и, если установлены, установлен ли заданный переключатель совместимости.

IsDefaultAppDomain()

Возвращает значение, указывающее, является ли домен приложения используемым по умолчанию доменом для процесса.

IsFinalizingForUnload()

Определяет, выгружен ли этот домен приложения, и были ли закрыты средой CLR объекты, которые он содержал.

Load(AssemblyName)

Загружает сборку Assembly, заданную ее именем AssemblyName.

Load(AssemblyName, Evidence)
Является устаревшей.
Является устаревшей.

Загружает сборку Assembly, заданную ее именем AssemblyName.

Load(Byte[])

Загружает объект Assembly с образом в формате COFF, содержащим порожденный объект Assembly.

Load(Byte[], Byte[])

Загружает объект Assembly с образом в формате COFF, содержащим порожденный объект Assembly. Загружаются также необработанные байты, представляющие символы для Assembly.

Load(Byte[], Byte[], Evidence)
Является устаревшей.
Является устаревшей.

Загружает объект Assembly с образом в формате COFF, содержащим порожденный объект Assembly. Загружаются также необработанные байты, представляющие символы для Assembly.

Load(String)

Загружает сборку Assembly, заданную ее отображаемым именем.

Load(String, Evidence)
Является устаревшей.
Является устаревшей.

Загружает сборку Assembly, заданную ее отображаемым именем.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ReflectionOnlyGetAssemblies()

Возвращает сборки, которые были загружены в контекст, поддерживающий только отражение домена приложения.

SetAppDomainPolicy(PolicyLevel)
Является устаревшей.
Является устаревшей.

Устанавливает уровень политики безопасности для этого домена приложения.

SetCachePath(String)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Устанавливает заданный путь каталога в качестве места, куда копируются теневые сборки.

SetData(String, Object)

Устанавливает заданное значение для свойства указанного домена приложения.

SetData(String, Object, IPermission)

Присваивает заданное значение заданному свойству домена приложения с заданными разрешениями, которые нужно запросить у вызывающего кода при извлечении свойства.

SetDynamicBase(String)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Устанавливает заданный путь каталога в качестве базового каталога для подкаталогов, в которых сохраняются и становятся доступными динамически созданные файлы.

SetPrincipalPolicy(PrincipalPolicy)

Указывает, как участники и объекты удостоверений должны присоединяться к потоку, если поток пытается выполнить привязку к участнику при выполнении в этом домене приложения.

SetShadowCopyFiles()
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Включает теневое копирование.

SetShadowCopyPath(String)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Устанавливает заданный путь каталога в качестве места для теневого копирования сборок.

SetThreadPrincipal(IPrincipal)

Задает объект-участник по умолчанию, который необходимо присоединять к потокам, в случае если они пытаются выполнить привязку к объекту-участнику во время выполнения в этом домене приложения.

ToString()

Получает строку, включающую понятное имя домена приложения и политики контекста.

Unload(AppDomain)
Является устаревшей.

Выгружает заданный домен приложения.

События

AssemblyLoad

происходит, когда загружена сборка.

AssemblyResolve

Происходит, когда разрешение сборки завершается неудачей.

DomainUnload

Происходит непосредственно перед выгрузкой объекта AppDomain.

FirstChanceException

Происходит при создании исключения в управляемом коде, перед тем как среда выполнения ищет стек вызовов для обработчика исключений в домене приложений.

ProcessExit

Происходит при завершении работы родительского процесса домена приложения по умолчанию.

ReflectionOnlyAssemblyResolve

Происходит, когда разрешение сборки завершается неудачей в контексте, поддерживающем только отражение.

ResourceResolve

происходит, когда разрешение ресурса завершается неудачей, из-за того, что он не является допустимым связанным или внедренным ресурсом в сборке.

TypeResolve

Происходит, когда разрешении типа завершается неудачей.

UnhandledException

Происходит, если выброшенное исключение остается не перехваченным.

Явные реализации интерфейса

_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

_AppDomain.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

_AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

Применяется к

См. также раздел