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
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
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 и .NET 5+ AppDomain реализация ограничена проектированием и не обеспечивает изоляцию, выгрузку или границы безопасности. Эти версии имеют ровно одну 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, Byte[], AssemblyHashAlgorithm) |
Создает новый экземпляр указанного типа COM. Параметры указывают имя файла, содержащего сборку, содержащую тип и имя типа. |
| CreateComInstanceFrom(String, String) |
Создает новый экземпляр указанного типа COM. Параметры указывают имя файла, содержащего сборку, содержащую тип и имя типа. |
| CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
Создает домен приложения, используя указанное имя, доказательства, сведения о настройке домена приложения, набор разрешений по умолчанию и массив полностью доверенных сборок. |
| CreateDomain(String, Evidence, AppDomainSetup) |
Создает новый домен приложения с помощью указанных имен, доказательств и сведений о настройке домена приложения. |
| CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
Создает домен приложения с заданным именем, используя доказательства, базовый путь приложения, относительный путь поиска и параметр, указывающий, должна ли теневая копия сборки загружаться в домен приложения. Указывает метод обратного вызова, который вызывается при инициализации домена приложения, и массив строковых аргументов для передачи метода обратного вызова. |
| CreateDomain(String, Evidence, String, String, Boolean) |
Создает домен приложения с заданным именем, используя доказательства, базовый путь приложения, относительный путь поиска и параметр, указывающий, должна ли теневая копия сборки загружаться в домен приложения. |
| CreateDomain(String, Evidence) |
Создает домен приложения с заданным именем, используя предоставленные доказательства. |
| CreateDomain(String) |
Устаревшие..
Создает новый домен приложения с указанным именем. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Устаревшие..
Создает новый экземпляр указанного типа, определенного в указанной сборке. Параметры указывают привязку, флаги привязки, аргументы конструктора, сведения о языке и региональных параметрах, используемые для интерпретации аргументов, атрибутов активации и авторизации для создания типа. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанной сборке. Параметры указывают привязку, флаги привязки, аргументы конструктора, сведения о языке и региональных параметрах, используемые для интерпретации аргументов и необязательные атрибуты активации. |
| CreateInstance(String, String, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанной сборке. Параметр задает массив атрибутов активации. |
| CreateInstance(String, String) |
Создает новый экземпляр указанного типа, определенного в указанной сборке. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Устаревшие..
Создает новый экземпляр указанного типа. Параметры указывают имя типа и способ его обнаружения и создания. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанной сборке, указывая, игнорируется ли регистр имени типа; атрибуты привязки и привязка, которые используются для выбора создаваемого типа; аргументы конструктора; язык и региональные параметры; и атрибуты активации. |
| CreateInstanceAndUnwrap(String, String, Object[]) |
Создает новый экземпляр указанного типа. Параметры указывают сборку, в которой определен тип, имя типа и массив атрибутов активации. |
| CreateInstanceAndUnwrap(String, String) |
Создает новый экземпляр указанного типа. Параметры указывают сборку, в которой определен тип, и имя типа. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Устаревшие..
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFrom(String, String, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFrom(String, String) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Устаревшие..
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки, указывая, игнорируется ли регистр имени типа; атрибуты привязки и привязка, которые используются для выбора создаваемого типа; аргументы конструктора; язык и региональные параметры; и атрибуты активации. |
| CreateInstanceFromAndUnwrap(String, String, Object[]) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateInstanceFromAndUnwrap(String, String) |
Создает новый экземпляр указанного типа, определенного в указанном файле сборки. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Устаревшие..
Определяет динамическую сборку, используя указанное имя, режим доступа, доказательства и запросы разрешений. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
Устаревшие..
Определяет динамическую сборку, используя указанное имя, режим доступа и доказательства. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) |
Определяет динамическую сборку с указанным именем, режимом доступа и настраиваемыми атрибутами, а также с помощью указанного источника для контекста безопасности. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
Определяет динамическую сборку с указанным именем, режимом доступа и пользовательскими атрибутами. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) |
Устаревшие..
Определяет динамическую сборку с помощью указанного имени, режима доступа и запросов разрешений. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранилища и параметра синхронизации. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
Устаревшие..
Определяет динамическую сборку с указанным именем, режимом доступа, каталогом хранилища, доказательствами, запросами разрешений, параметром синхронизации и пользовательскими атрибутами. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
Устаревшие..
Определяет динамическую сборку, используя указанное имя, режим доступа, каталог хранилища, доказательства, запросы разрешений и параметр синхронизации. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Устаревшие..
Определяет динамическую сборку, используя указанное имя, режим доступа, каталог хранилища, доказательства и запросы разрешений. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Устаревшие..
Определяет динамическую сборку, используя указанное имя, режим доступа, каталог хранилища и доказательства. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
Устаревшие..
Определяет динамическую сборку с помощью указанного имени, режима доступа, каталога хранилища и запросов разрешений. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
Определяет динамическую сборку с помощью указанного имени, режима доступа и каталога хранилища. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
Определяет динамическую сборку с указанным именем и режимом доступа. |
| DoCallBack(CrossAppDomainDelegate) |
Выполняет код в другом домене приложения, который определяется указанным делегатом. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
Устаревшие..
Выполняет сборку, содержащуюся в указанном файле, используя указанные доказательства, аргументы, хэш-значение и хэш-алгоритм. |
| ExecuteAssembly(String, Evidence, String[]) |
Устаревшие..
Выполняет сборку, содержащуюся в указанном файле, используя указанные доказательства и аргументы. |
| ExecuteAssembly(String, Evidence) |
Устаревшие..
Выполняет сборку, содержащуюся в указанном файле, используя указанные доказательства. |
| ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
Устаревшие..
Выполняет сборку, содержащуюся в указанном файле, используя указанные аргументы, хэш-значение и хэш-алгоритм. |
| ExecuteAssembly(String, String[]) |
Выполняет сборку, содержащуюся в указанном файле, с помощью указанных аргументов. |
| ExecuteAssembly(String) |
Выполняет сборку, содержащуюся в указанном файле. |
| ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Устаревшие..
Выполняет сборку, заданную AssemblyNameс использованием указанных доказательств и аргументов. |
| ExecuteAssemblyByName(AssemblyName, String[]) |
Выполняет сборку, заданную AssemblyNameс помощью указанных аргументов. |
| ExecuteAssemblyByName(String, Evidence, String[]) |
Устаревшие..
Выполняет сборку, указав отображаемое имя, используя указанные доказательства и аргументы. |
| ExecuteAssemblyByName(String, Evidence) |
Устаревшие..
Выполняет сборку с отображаемым именем, используя указанные доказательства. |
| ExecuteAssemblyByName(String, String[]) |
Выполняет сборку с отображаемым именем, используя указанные аргументы. |
| ExecuteAssemblyByName(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, Evidence) |
Устаревшие..
Загружает заданный Assembly объект AssemblyName. |
| Load(AssemblyName) |
Загружает заданный Assembly объект AssemblyName. |
| Load(Byte[], Byte[], Evidence) |
Устаревшие..
Assembly Загружает образ с общим форматом файлов объектов (COFF), содержащим создаваемый Assemblyобъект. Необработанные байты, представляющие символы для этого Assembly , также загружаются. |
| Load(Byte[], Byte[]) |
Assembly Загружает образ с общим форматом файлов объектов (COFF), содержащим создаваемый Assemblyобъект. Необработанные байты, представляющие символы для этого Assembly , также загружаются. |
| Load(Byte[]) |
Assembly Загружает образ с общим форматом файлов объектов (COFF), содержащим создаваемый Assemblyобъект. |
| Load(String, Evidence) |
Устаревшие..
Загружает заданное Assembly отображаемое имя. |
| Load(String) |
Загружает заданное Assembly отображаемое имя. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ReflectionOnlyGetAssemblies() |
Возвращает сборки, загруженные в контекст только отражения домена приложения. |
| SetAppDomainPolicy(PolicyLevel) |
Устаревшие..
Устанавливает уровень политики безопасности для этого домена приложения. |
| SetCachePath(String) |
Устаревшие..
Устаревшие..
Устаревшие..
Устанавливает указанный путь к каталогу в качестве расположения, в котором сборки копируются теневыми копиями. |
| SetData(String, Object, IPermission) |
Назначает указанное значение указанному свойству домена приложения с указанным разрешением на запрос вызывающего объекта при получении свойства. |
| SetData(String, Object) |
Назначает указанное значение указанному свойству домена приложения. |
| 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) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. |