AppDomain Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje doménu aplikace, což je izolované prostředí, ve kterém se aplikace spouštějí. Tuto třídu nelze zdědit.
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
- Dědičnost
- Atributy
- Implementuje
Příklady
Tento příklad ukazuje, jak vytvořit novou AppDomaininstanci typu v tomto novém AppDomainobjektu a komunikovat s objektem tohoto typu. Kromě toho tento příklad ukazuje, jak uvolnit AppDomain příčinu uvolňování paměti objektu.
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.
Poznámky
Domény aplikací, které jsou reprezentovány AppDomain objekty, pomáhají poskytovat izolaci, uvolňování a hranice zabezpečení pro spouštění spravovaného kódu.
- Pomocí domén aplikací můžete izolovat úlohy, které můžou proces snížit. Pokud se stav AppDomain spuštěné úlohy stane nestabilní, může být uvolněn bez AppDomain ovlivnění procesu. To je důležité, když proces musí běžet po dlouhou dobu bez restartování. Domény aplikací můžete také použít k izolaci úloh, které by neměly sdílet data.
- Pokud je sestavení načteno do výchozí domény aplikace, nelze jej uvolnit z paměti při spuštění procesu. Pokud však otevřete druhou doménu aplikace pro načtení a spuštění sestavení, sestavení se uvolní při uvolnění domény aplikace. Pomocí této techniky můžete minimalizovat pracovní sadu dlouhotrvajících procesů, které občas používají velké knihovny DLL.
Poznámka:
V .NET Core a .NET 5+ AppDomain je implementace omezena návrhem a neposkytuje izolaci, uvolnění nebo hranice zabezpečení. Tyto verze mají přesně jednu AppDomain. Izolace a uvolňování jsou poskytovány prostřednictvím AssemblyLoadContext. Hranice zabezpečení by měly být poskytovány hranicemi procesů a vhodnými technikami vzdálené komunikace.
V jednom procesu může běžet více domén aplikací; Neexistuje však korelace 1:1 mezi doménami aplikace a vlákny. Několik vláken může patřit do jedné domény aplikace a zatímco dané vlákno není omezeno na jednu doménu aplikace, v každém okamžiku se vlákno spustí v jedné doméně aplikace.
Domény aplikace se vytvářejí pomocí CreateDomain metody. AppDomain Instance se používají k načtení a spouštění sestavení (Assembly). AppDomain Pokud se už nepoužívá, můžete ho uvolnit.
Třída AppDomain implementuje sadu událostí, které umožňují aplikacím reagovat při načtení sestavení, při uvolnění domény aplikace nebo při vyvolání neošetřené výjimky.
Další informace o používání domén aplikací najdete v tématu Domény aplikace.
Tato třída implementuje MarshalByRefObject, _AppDomaina IEvidenceFactory rozhraní.
Pro objekt byste nikdy neměli vytvářet motovatelné obálky AppDomain . Tím by bylo možné publikovat vzdálený odkaz na to AppDomain, zveřejnění metod, jako CreateInstance je vzdálený přístup a efektivní zničení zabezpečení přístupu kódu pro toto AppDomain. Zlými klienty, kteří se připojují ke vzdálenému připojení AppDomain , můžou získat přístup k jakémukoli prostředku, AppDomain ke kterému má sám přístup. Nevytvádřujte vzdálené obálky pro žádný typ, který rozšiřuje MarshalByRefObject a implementuje metody, které by mohly být používány škodlivými klienty k obejití systému zabezpečení.
Upozornění
Výchozí hodnota vlastnosti AppDomainSetup.DisallowCodeDownload je false. Toto nastavení není pro služby nebezpečné. Chcete-li zabránit službám ve stahování částečně důvěryhodného kódu, nastavte tuto vlastnost na true.
Vlastnosti
| Name | Description |
|---|---|
| ActivationContext |
Získá kontext aktivace pro aktuální doménu aplikace. |
| ApplicationIdentity |
Získá identitu aplikace v doméně aplikace. |
| ApplicationTrust |
Získá informace popisující oprávnění udělená aplikaci a informace o tom, jestli má aplikace úroveň důvěryhodnosti, která umožňuje jeho spuštění. |
| BaseDirectory |
Získá základní adresář, který překladač sestavení používá k sondování sestavení. |
| CurrentDomain |
Získá aktuální doménu aplikace pro aktuální Thread. |
| DomainManager |
Získá správce domény, který byl poskytován hostitelem při inicializaci domény aplikace. |
| DynamicDirectory |
Získá adresář, který překladač sestavení používá k sondování pro dynamicky vytvořená sestavení. |
| Evidence |
Získá přidruženou Evidence k této doméně aplikace. |
| FriendlyName |
Získá popisný název této domény aplikace. |
| Id |
Získá celé číslo, které jednoznačně identifikuje doménu aplikace v rámci procesu. |
| IsFullyTrusted |
Získá hodnotu, která označuje, zda sestavení, která jsou načtena do aktuální domény aplikace s úplným vztahem důvěryhodnosti. |
| IsHomogenous |
Získá hodnotu, která určuje, zda aktuální aplikační doména má sadu oprávnění, která jsou udělena všem sestavením načteným do domény aplikace. |
| MonitoringIsEnabled |
Získá nebo nastaví hodnotu, která označuje, zda je pro aktuální proces povoleno monitorování procesoru a paměti domén aplikací. Jakmile je monitorování pro proces povolené, nedá se zakázat. |
| MonitoringSurvivedMemorySize |
Získá počet bajtů, které přežily poslední kolekci a které jsou známé jako odkazované aktuální doménou aplikace. |
| MonitoringSurvivedProcessMemorySize |
Získá celkový počet bajtů, které přežily z poslední kolekce pro všechny domény aplikace v procesu. |
| MonitoringTotalAllocatedMemorySize |
Získá celkovou velikost všech přidělení paměti vytvořených doménou aplikace v bajtech bez odečtení shromážděné paměti. |
| MonitoringTotalProcessorTime |
Získá celkový čas procesoru používaný všemi vlákny při provádění v aktuální doméně aplikace od spuštění procesu. |
| PermissionSet |
Zastaralé.
Získá sadu oprávnění domény aplikace v izolovaném prostoru (sandbox). |
| RelativeSearchPath |
Získá cestu pod základní adresář, kde překladač sestavení by měl testovat pro privátní sestavení. |
| SetupInformation |
Získá informace o konfiguraci domény aplikace pro tuto instanci. |
| ShadowCopyFiles |
Získá indikaci, jestli je doména aplikace nakonfigurovaná na soubory stínové kopie. |
Metody
| Name | Description |
|---|---|
| AppendPrivatePath(String) |
Zastaralé.
Zastaralé.
Zastaralé.
Připojí zadaný název adresáře k seznamu privátních cest. |
| ApplyPolicy(String) |
Vrátí zobrazovaný název sestavení po použití zásady. |
| ClearPrivatePath() |
Zastaralé.
Zastaralé.
Zastaralé.
Obnoví cestu, která určuje umístění privátních sestavení do prázdného řetězce (""). |
| ClearShadowCopyPath() |
Zastaralé.
Zastaralé.
Zastaralé.
Obnoví seznam adresářů obsahujících stínová kopírovaná sestavení na prázdný řetězec (""). |
| CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Vytvoří novou instanci zadaného typu modelu COM. Parametry určují název souboru, který obsahuje sestavení obsahující typ a název typu. |
| CreateComInstanceFrom(String, String) |
Vytvoří novou instanci zadaného typu modelu COM. Parametry určují název souboru, který obsahuje sestavení obsahující typ a název typu. |
| CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
Vytvoří novou doménu aplikace pomocí zadaného názvu, důkazů, informací o nastavení domény aplikace, výchozí sady oprávnění a pole plně důvěryhodných sestavení. |
| CreateDomain(String, Evidence, AppDomainSetup) |
Vytvoří novou doménu aplikace pomocí zadaného názvu, důkazů a informací o nastavení domény aplikace. |
| CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
Vytvoří novou doménu aplikace s daným názvem pomocí důkazů, základní cesty aplikace, relativní cesty hledání a parametru, který určuje, jestli se má stínová kopie sestavení načíst do domény aplikace. Určuje metodu zpětného volání, která se vyvolá při inicializaci domény aplikace a pole řetězcových argumentů pro předání metody zpětného volání. |
| CreateDomain(String, Evidence, String, String, Boolean) |
Vytvoří novou doménu aplikace s daným názvem pomocí důkazů, základní cesty aplikace, relativní cesty hledání a parametru, který určuje, jestli se má stínová kopie sestavení načíst do domény aplikace. |
| CreateDomain(String, Evidence) |
Vytvoří novou doménu aplikace s daným názvem pomocí zadaných důkazů. |
| CreateDomain(String) |
Zastaralé.
Vytvoří novou doménu aplikace se zadaným názvem. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Zastaralé.
Vytvoří novou instanci zadaného typu definovaného v zadaném sestavení. Parametry určují pořadač, příznaky vazeb, argumenty konstruktoru, informace specifické pro jazykovou verzi, které slouží k interpretaci argumentů, aktivačních atributů a autorizace k vytvoření typu. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném sestavení. Parametry určují pořadač, příznaky vazeb, argumenty konstruktoru, informace specifické pro jazykovou verzi používané k interpretaci argumentů a volitelné aktivační atributy. |
| CreateInstance(String, String, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném sestavení. Parametr určuje pole aktivačních atributů. |
| CreateInstance(String, String) |
Vytvoří novou instanci zadaného typu definovaného v zadaném sestavení. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Zastaralé.
Vytvoří novou instanci zadaného typu. Parametry určují název typu a způsob jeho nalezení a vytvoření. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném sestavení a určuje, zda je velikost písmen názvu typu ignorována; vazební atributy a pořadač, které slouží k výběru typu, který má být vytvořen; argumenty konstruktoru; kultura; a aktivační atributy. |
| CreateInstanceAndUnwrap(String, String, Object[]) |
Vytvoří novou instanci zadaného typu. Parametry určují sestavení, ve kterém je typ definován, název typu a pole aktivačních atributů. |
| CreateInstanceAndUnwrap(String, String) |
Vytvoří novou instanci zadaného typu. Parametry určují sestavení, ve kterém je typ definován, a název typu. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Zastaralé.
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFrom(String, String, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFrom(String, String) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Zastaralé.
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení, který určuje, zda je velikost písmen názvu typu ignorována; vazební atributy a pořadač, které slouží k výběru typu, který má být vytvořen; argumenty konstruktoru; kultura; a aktivační atributy. |
| CreateInstanceFromAndUnwrap(String, String, Object[]) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateInstanceFromAndUnwrap(String, String) |
Vytvoří novou instanci zadaného typu definovaného v zadaném souboru sestavení. |
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, důkazů a žádostí o oprávnění. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a důkazů. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) |
Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy a použitím zadaného zdroje pro kontext zabezpečení. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
Definuje dynamické sestavení se zadaným názvem, režimem přístupu a vlastními atributy. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a žádostí o oprávnění. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a možnosti synchronizace. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
Zastaralé.
Definuje dynamické sestavení se zadaným názvem, režimem přístupu, adresářem úložiště, důkazy, požadavky na oprávnění, možností synchronizace a vlastními atributy. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů, žádostí o oprávnění a možnosti synchronizace. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště, důkazů a žádostí o oprávnění. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a důkazů. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
Zastaralé.
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu, adresáře úložiště a žádostí o oprávnění. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
Definuje dynamické sestavení pomocí zadaného názvu, režimu přístupu a adresáře úložiště. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
Definuje dynamické sestavení se zadaným názvem a režimem přístupu. |
| DoCallBack(CrossAppDomainDelegate) |
Spustí kód v jiné doméně aplikace, která je identifikována zadaným delegátem. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
Zastaralé.
Spustí sestavení obsažené v zadaném souboru pomocí zadaných důkazů, argumentů, hodnot hash a algoritmu hash. |
| ExecuteAssembly(String, Evidence, String[]) |
Zastaralé.
Spustí sestavení obsažené v zadaném souboru pomocí zadaných důkazů a argumentů. |
| ExecuteAssembly(String, Evidence) |
Zastaralé.
Spustí sestavení obsažené v zadaném souboru pomocí zadaných důkazů. |
| ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
Zastaralé.
Spustí sestavení obsažené v zadaném souboru pomocí zadaných argumentů, hodnoty hash a hashovacího algoritmu. |
| ExecuteAssembly(String, String[]) |
Spustí sestavení obsažené v zadaném souboru pomocí zadaných argumentů. |
| ExecuteAssembly(String) |
Spustí sestavení obsažené v zadaném souboru. |
| ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Zastaralé.
Spustí sestavení s použitím AssemblyNamezadaných důkazů a argumentů. |
| ExecuteAssemblyByName(AssemblyName, String[]) |
Spustí sestavení s použitím AssemblyNamezadaných argumentů. |
| ExecuteAssemblyByName(String, Evidence, String[]) |
Zastaralé.
Spustí sestavení vzhledem k jeho zobrazovaného názvu pomocí zadaných důkazů a argumentů. |
| ExecuteAssemblyByName(String, Evidence) |
Zastaralé.
Spustí sestavení vzhledem k jeho zobrazovaným názvům pomocí zadaných důkazů. |
| ExecuteAssemblyByName(String, String[]) |
Spustí sestavení vzhledem k zobrazovaného názvu pomocí zadaných argumentů. |
| ExecuteAssemblyByName(String) |
Spustí sestavení s daným zobrazovaným názvem. |
| GetAssemblies() |
Získá sestavení, která byla načtena do kontextu spuštění této domény aplikace. |
| GetCurrentThreadId() |
Zastaralé.
Zastaralé.
Zastaralé.
Zastaralé.
Získá aktuální identifikátor vlákna. |
| GetData(String) |
Získá hodnotu uloženou v aktuální doméně aplikace pro zadaný název. |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetType() |
Získá typ aktuální instance. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
AppDomain Poskytuje neomezenou životnost tím, že brání vytvoření zapůjčení. |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| IsCompatibilitySwitchSet(String) |
Získá logickou hodnotu s možnou hodnotou null, která označuje, zda jsou nastaveny nějaké přepínače kompatibility, a pokud ano, zda je zadaný přepínač kompatibility nastaven. |
| IsDefaultAppDomain() |
Vrátí hodnotu, která určuje, jestli je doména aplikace výchozí doménou aplikace pro proces. |
| IsFinalizingForUnload() |
Určuje, zda se tato doména aplikace uvolňováním a objekty, které obsahuje, jsou finalizovány modulem CLR (Common Language Runtime). |
| Load(AssemblyName, Evidence) |
Zastaralé.
Načte danou Assembly jeho AssemblyName. |
| Load(AssemblyName) |
Načte danou Assembly jeho AssemblyName. |
| Load(Byte[], Byte[], Evidence) |
Zastaralé.
Načte obrázek Assembly s běžným formátem souboru objektu (COFF), který obsahuje vygenerovaný Assemblysoubor . Nezpracované bajty představující symboly jsou Assembly také načteny. |
| Load(Byte[], Byte[]) |
Načte obrázek Assembly s běžným formátem souboru objektu (COFF), který obsahuje vygenerovaný Assemblysoubor . Nezpracované bajty představující symboly jsou Assembly také načteny. |
| Load(Byte[]) |
Načte obrázek Assembly s běžným formátem souboru objektu (COFF), který obsahuje vygenerovaný Assemblysoubor . |
| Load(String, Evidence) |
Zastaralé.
Načte zadaný zobrazovaný Assembly název. |
| Load(String) |
Načte zadaný zobrazovaný Assembly název. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| ReflectionOnlyGetAssemblies() |
Vrátí sestavení, která byla načtena do kontextu pouze reflexe domény aplikace. |
| SetAppDomainPolicy(PolicyLevel) |
Zastaralé.
Vytvoří úroveň zásad zabezpečení pro tuto doménu aplikace. |
| SetCachePath(String) |
Zastaralé.
Zastaralé.
Zastaralé.
Vytvoří zadanou cestu k adresáři jako umístění, kde jsou sestavení stínována. |
| SetData(String, Object, IPermission) |
Přiřadí zadanou hodnotu k zadané vlastnosti domény aplikace se zadaným oprávněním požadovat volajícího při načtení vlastnosti. |
| SetData(String, Object) |
Přiřadí zadanou hodnotu k zadané vlastnosti domény aplikace. |
| SetDynamicBase(String) |
Zastaralé.
Zastaralé.
Zastaralé.
Vytvoří zadanou cestu k adresáři jako základní adresář pro podadresáře, kde jsou dynamicky generované soubory uloženy a přístupné. |
| SetPrincipalPolicy(PrincipalPolicy) |
Určuje, jak se mají objekty zabezpečení a identity připojit k podprocesu, pokud se vlákno pokusí vytvořit vazbu k objektu zabezpečení při provádění v této doméně aplikace. |
| SetShadowCopyFiles() |
Zastaralé.
Zastaralé.
Zastaralé.
Zapne stínové kopírování. |
| SetShadowCopyPath(String) |
Zastaralé.
Zastaralé.
Zastaralé.
Vytvoří zadanou cestu k adresáři jako umístění sestavení, která mají být stínována. |
| SetThreadPrincipal(IPrincipal) |
Nastaví výchozí objekt objektu zabezpečení, který se má připojit k podprocesům, pokud se při provádění v této doméně aplikace pokusí vytvořit vazbu k objektu zabezpečení. |
| ToString() |
Získá řetězcovou reprezentaci, která zahrnuje popisný název domény aplikace a všechny kontextové zásady. |
| Unload(AppDomain) |
Zastaralé.
Uvolní zadanou doménu aplikace. |
Událost
| Name | Description |
|---|---|
| AssemblyLoad |
Nastane při načtení sestavení. |
| AssemblyResolve |
Nastane, když řešení sestavení selže. |
| DomainUnload |
Nastane, když AppDomain se chystáte uvolnit. |
| FirstChanceException |
Nastane v případě, že ve spravovaném kódu dojde k výjimce, než modul runtime vyhledá zásobník volání obslužnou rutinu výjimky v doméně aplikace. |
| ProcessExit |
Nastane, když se ukončí nadřazený proces výchozí domény aplikace. |
| ReflectionOnlyAssemblyResolve |
Nastane, když řešení sestavení selže v kontextu pouze reflexe. |
| ResourceResolve |
Nastane, když řešení prostředku selže, protože prostředek není platným propojeným nebo vloženým prostředkem v sestavení. |
| TypeResolve |
Nastane, když řešení typu selže. |
| UnhandledException |
Nastane, když není zachycena výjimka. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. |
| _AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. |
| _AppDomain.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). |
| _AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. |