AppDomain Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy alkalmazástartományt jelöl, amely egy elszigetelt környezet, ahol az alkalmazások futnak. Ez az osztály nem örökölhető.
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
- Öröklődés
- Attribútumok
- Megvalósítás
Példák
Ez a példa bemutatja, hogyan hozhat létre újat AppDomain, hogyan hozhat létre egy típust az újban AppDomain, és hogyan kommunikálhat az adott típus objektumával. Ezen kívül ez a példa bemutatja, hogyan távolíthatja el az AppDomain objektum szemétgyűjtését.
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.
Megjegyzések
Az objektumok által AppDomain képviselt alkalmazástartományok elkülönítést, kiürítést és biztonsági határokat biztosítanak a felügyelt kód végrehajtásához.
- Alkalmazástartományok használatával elkülönítheti azokat a feladatokat, amelyek lehozhatnak egy folyamatot. Ha a feladatot végrehajtó állapot AppDomain instabillá válik, a AppDomain folyamat befolyásolása nélkül is eltávolítható. Ez akkor fontos, ha egy folyamatnak újraindítás nélkül hosszú ideig kell futnia. Az alkalmazástartományokkal elkülönítheti azokat a feladatokat is, amelyek nem oszthatnak meg adatokat.
- Ha egy szerelvény be van töltve az alapértelmezett alkalmazástartományba, a folyamat futtatása közben nem távolítható el a memóriából. Ha azonban megnyit egy második alkalmazástartományt a szerelvény betöltéséhez és végrehajtásához, a rendszer eltávolítja a szerelvényt az alkalmazástartomány eltávolításakor. Ezzel a technikával minimalizálhatja a hosszú ideig futó folyamatok munkakészletét, amelyek időnként nagy DLL-eket használnak.
Note
Az .NET Core és .NET 5+ esetén a AppDomain implementációt a tervezés korlátozza, és nem biztosít elkülönítést, kirakodást vagy biztonsági határokat. Ezek a verziók pontosan egy AppDomain. Az elkülönítést és a kirakodást a rendszer biztosítja AssemblyLoadContext. A biztonsági határokat folyamathatárokkal és a megfelelő újraegyezési technikákkal kell megadni.
Több alkalmazástartomány is futtatható egyetlen folyamatban; az alkalmazástartományok és a szálak között azonban nincs egy-az-egyhez korreláció. Több szál is tartozhat egyetlen alkalmazástartományhoz, és bár egy adott szál nem korlátozódik egyetlen alkalmazástartományra, egy szál egy adott időpontban egyetlen alkalmazástartományban fut.
Az alkalmazástartományok a CreateDomain metódus használatával jönnek létre. AppDomain a példányok szerelvények () betöltésére és végrehajtására szolgálnakAssembly. Ha egy AppDomain már nincs használatban, akkor ki lehet üríteni.
Az AppDomain osztály olyan eseményeket valósít meg, amelyek lehetővé teszik, hogy az alkalmazások válaszoljanak egy szerelvény betöltésekor, az alkalmazástartomány kiürítésekor vagy kezeletlen kivétel esetén.
További információ az alkalmazástartományok használatáról: Application Domains.
Ez az osztály implementálja az MarshalByRefObject, _AppDomainés IEvidenceFactory interfészeket.
Soha ne hozzon létre újramotable burkolót egy AppDomain objektumhoz. Ha így tesz, közzétehet egy távoli hivatkozást erre AppDomain, felfedve az olyan módszereket, mint CreateInstance a távelérés, és hatékonyan megsemmisítheti a AppDomainkódhozzáférés biztonságát. A távolihoz AppDomain csatlakozó rosszindulatú ügyfelek hozzáférhetnek minden olyan erőforráshoz AppDomain , amelyhez maga rendelkezik hozzáféréssel. Ne hozzon létre újramunkálható burkolókat olyan típushoz, amely kiterjed MarshalByRefObject , és olyan metódusokat implementál, amelyeket rosszindulatú ügyfelek használhatnak a biztonsági rendszer megkerülésére.
Figyelmeztetés
A AppDomainSetup.DisallowCodeDownload tulajdonság alapértelmezett értéke false. Ez a beállítás nem biztonságos a szolgáltatások esetében. Ha meg szeretné akadályozni, hogy a szolgáltatások részben megbízható kódot töltsenek le, állítsa ezt a tulajdonságot a következőre true: .
Tulajdonságok
| Name | Description |
|---|---|
| ActivationContext |
Lekéri az aktuális alkalmazástartomány aktiválási környezetét. |
| ApplicationIdentity |
Lekéri az alkalmazás identitását az alkalmazástartományban. |
| ApplicationTrust |
Lekéri az alkalmazásnak adott engedélyeket leíró információkat, valamint azt, hogy az alkalmazás rendelkezik-e olyan megbízhatósági szinttel, amely lehetővé teszi a futtatását. |
| BaseDirectory |
Lekéri azt az alapkönyvtárat, amelyet a szerelvényfeloldó a szerelvények mintavételéhez használ. |
| CurrentDomain |
Lekéri az aktuális alkalmazástartományt az aktuálishoz Thread. |
| DomainManager |
Lekéri a gazdagép által az alkalmazástartomány inicializálásakor megadott tartománykezelőt. |
| DynamicDirectory |
Lekéri azt a könyvtárat, amelyet a szerelvényfeloldó a dinamikusan létrehozott szerelvények mintavételéhez használ. |
| Evidence |
Lekéri az Evidence alkalmazástartományhoz társítottat. |
| FriendlyName |
Lekéri az alkalmazástartomány rövid nevét. |
| Id |
Beolvas egy egész számot, amely egyedileg azonosítja az alkalmazástartományt a folyamaton belül. |
| IsFullyTrusted |
Olyan értéket kap, amely jelzi, hogy az aktuális alkalmazástartományba betöltött szerelvények teljes megbízhatósággal futnak-e. |
| IsHomogenous |
Olyan értéket kap, amely jelzi, hogy az aktuális alkalmazástartomány rendelkezik-e olyan engedélykészlettel, amely az alkalmazástartományba betöltött összes szerelvény számára biztosított. |
| MonitoringIsEnabled |
Lekéri vagy beállít egy értéket, amely jelzi, hogy az alkalmazástartományok processzor- és memóriamonitorozása engedélyezve van-e az aktuális folyamathoz. Ha egy folyamat figyelése engedélyezve van, az nem tiltható le. |
| MonitoringSurvivedMemorySize |
Lekéri azokat a bájtokat, amelyek túlélték az utolsó gyűjteményt, és amelyekről ismert, hogy az aktuális alkalmazástartomány hivatkozik rá. |
| MonitoringSurvivedProcessMemorySize |
Lekéri a folyamat összes alkalmazástartományának utolsó gyűjteményéből túlélt bájtok teljes mennyiségét. |
| MonitoringTotalAllocatedMemorySize |
Bájtban lekéri az alkalmazástartomány által a létrehozás óta végrehajtott memóriafoglalások teljes méretét bájtban anélkül, hogy kivonja a gyűjtött memóriát. |
| MonitoringTotalProcessorTime |
A folyamat elindítása óta az összes szál által az aktuális alkalmazástartományban történő végrehajtás során felhasznált teljes processzoridőt kapja meg. |
| PermissionSet |
Elavult.
Lekéri a tesztkörnyezettel rendelkező alkalmazástartomány engedélykészletét. |
| RelativeSearchPath |
Lekéri azt az útvonalat az alapkönyvtár alatt, ahol a szerelvény-feloldónak magánszerelvényeket kell keresnie. |
| SetupInformation |
Lekéri a példány alkalmazástartomány-konfigurációs adatait. |
| ShadowCopyFiles |
Jelzi, hogy az alkalmazástartomány árnyékmásolat-fájlokra van-e konfigurálva. |
Metódusok
| Name | Description |
|---|---|
| AppendPrivatePath(String) |
Elavult.
Elavult.
Elavult.
Hozzáfűzi a megadott könyvtárnevet a privát elérési út listájához. |
| ApplyPolicy(String) |
A szerelvény megjelenítendő nevét adja vissza a szabályzat alkalmazása után. |
| ClearPrivatePath() |
Elavult.
Elavult.
Elavult.
Alaphelyzetbe állítja a magánszerelvények helyét az üres sztringre (""). |
| ClearShadowCopyPath() |
Elavult.
Elavult.
Elavult.
Visszaállítja az árnyékmásolatú szerelvényeket tartalmazó könyvtárak listáját az üres sztringre (""). |
| CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Egy megadott COM-típus új példányát hozza létre. A paraméterek megadják a típust és a típus nevét tartalmazó szerelvényt tartalmazó fájl nevét. |
| CreateComInstanceFrom(String, String) |
Egy megadott COM-típus új példányát hozza létre. A paraméterek megadják a típust és a típus nevét tartalmazó szerelvényt tartalmazó fájl nevét. |
| CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
Létrehoz egy új alkalmazástartományt a megadott név, bizonyítékok, alkalmazástartomány beállítási adatai, alapértelmezett engedélykészlet és teljes mértékben megbízható szerelvények tömbje használatával. |
| CreateDomain(String, Evidence, AppDomainSetup) |
Létrehoz egy új alkalmazástartományt a megadott névvel, bizonyítékokkal és alkalmazástartomány beállítási adataival. |
| CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
Létrehoz egy új alkalmazástartományt a megadott névvel a bizonyítékok, az alkalmazás alap elérési útja, a relatív keresési útvonal és egy paraméter használatával, amely meghatározza, hogy egy szerelvény árnyékmásolata betölthető-e az alkalmazástartományba. Megadja a visszahívási metódust, amelyet az alkalmazástartomány inicializálásakor hív meg, és egy sztringargumentum-tömböt a visszahívási módszer átadásához. |
| CreateDomain(String, Evidence, String, String, Boolean) |
Létrehoz egy új alkalmazástartományt a megadott névvel a bizonyítékok, az alkalmazás alap elérési útja, a relatív keresési útvonal és egy paraméter használatával, amely meghatározza, hogy egy szerelvény árnyékmásolata betölthető-e az alkalmazástartományba. |
| CreateDomain(String, Evidence) |
Létrehoz egy új alkalmazástartományt a megadott bizonyítékok használatával a megadott névvel. |
| CreateDomain(String) |
Elavult.
Létrehoz egy új alkalmazástartományt a megadott névvel. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Elavult.
Létrehoz egy új példányt a megadott szerelvényben definiált megadott típusból. A paraméterek kötőanyagot, kötésjelzőket, konstruktorargumentumokat, az argumentumok értelmezéséhez használt kultúraspecifikus információkat, aktiválási attribútumokat és a típus létrehozásának engedélyezését határozzák meg. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Létrehoz egy új példányt a megadott szerelvényben definiált megadott típusból. A paraméterek kötőanyagot, kötésjelzőket, konstruktorargumentumokat, az argumentumok értelmezéséhez használt kultúraspecifikus információkat és opcionális aktiválási attribútumokat határoznak meg. |
| CreateInstance(String, String, Object[]) |
Létrehoz egy új példányt a megadott szerelvényben definiált megadott típusból. A paraméter az aktiválási attribútumok tömbét adja meg. |
| CreateInstance(String, String) |
Létrehoz egy új példányt a megadott szerelvényben definiált megadott típusból. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Elavult.
Létrehoz egy új példányt a megadott típusból. A paraméterek megadják a típus nevét, valamint a keresés és létrehozás módját. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Létrehoz egy új példányt a megadott szerelvényben megadott típusból, amely meghatározza, hogy a típusnév esetét figyelmen kívül hagyja-e; a létrehozandó típus kiválasztásához használt kötési attribútumok és kötési attribútumok; a konstruktor argumentumai; a kultúra; és az aktiválási attribútumok. |
| CreateInstanceAndUnwrap(String, String, Object[]) |
Létrehoz egy új példányt a megadott típusból. A paraméterek megadják azt a szerelvényt, amelyben a típus definiálva van, a típus nevét és az aktiválási attribútumok tömbét. |
| CreateInstanceAndUnwrap(String, String) |
Létrehoz egy új példányt a megadott típusból. A paraméterek megadják azt a szerelvényt, amelyben a típus definiálva van, és a típus nevét. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Elavult.
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFrom(String, String, Object[]) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFrom(String, String) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Elavult.
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból, amely megadja, hogy a típusnév esetét figyelmen kívül hagyja-e; a létrehozandó típus kiválasztásához használt kötési attribútumok és kötési attribútumok; a konstruktor argumentumai; a kultúra; és az aktiválási attribútumok. |
| CreateInstanceFromAndUnwrap(String, String, Object[]) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateInstanceFromAndUnwrap(String, String) |
Létrehoz egy új példányt a megadott szerelvényfájlban definiált megadott típusból. |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal, bizonyítékokkal és engedélykérelmekkel. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal és bizonyítékokkal. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) |
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal és egyéni attribútumokkal, és a megadott forrást használja a biztonsági környezethez. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
Dinamikus szerelvényt definiál a megadott névvel, hozzáférési móddal és egyéni attribútumokkal. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal és engedélykérelmekkel. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
Dinamikus szerelvényt határoz meg a megadott név, hozzáférési mód, tárkönyvtár és szinkronizálási beállítás használatával. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
Elavult.
Dinamikus szerelvényt definiál a megadott névvel, hozzáférési móddal, tárkönyvtárral, bizonyítékokkal, engedélykérésekkel, szinkronizálási beállítással és egyéni attribútumokkal. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal, tárkönyvtárral, bizonyítékokkal, engedélykérésekkel és szinkronizálási lehetőséggel. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal, tárkönyvtárral, bizonyítékokkal és engedélykérésekkel. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal, tárkönyvtárral és bizonyítékokkal. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
Elavult.
Dinamikus szerelvényt határoz meg a megadott név, hozzáférési mód, tárkönyvtár és engedélykérések használatával. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
Dinamikus szerelvényt határoz meg a megadott névvel, hozzáférési móddal és tárkönyvtárral. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
Dinamikus szerelvényt határoz meg a megadott névvel és hozzáférési móddal. |
| DoCallBack(CrossAppDomainDelegate) |
Végrehajtja a kódot egy másik alkalmazástartományban, amelyet a megadott meghatalmazott azonosít. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
Elavult.
Végrehajtja a megadott fájlban található szerelvényt a megadott bizonyítékok, argumentumok, kivonatértékek és kivonatoló algoritmus használatával. |
| ExecuteAssembly(String, Evidence, String[]) |
Elavult.
Végrehajtja a megadott fájlban található szerelvényt a megadott bizonyítékok és argumentumok használatával. |
| ExecuteAssembly(String, Evidence) |
Elavult.
Végrehajtja a megadott fájlban található szerelvényt a megadott bizonyítékok használatával. |
| ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
Elavult.
Végrehajtja a megadott fájlban található szerelvényt a megadott argumentumok, kivonatértékek és kivonatoló algoritmus használatával. |
| ExecuteAssembly(String, String[]) |
Végrehajtja a megadott fájlban található szerelvényt a megadott argumentumok használatával. |
| ExecuteAssembly(String) |
Végrehajtja a megadott fájlban található szerelvényt. |
| ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Elavult.
Végrehajtja a megadott szerelvényt AssemblyNamea megadott bizonyítékok és argumentumok használatával. |
| ExecuteAssemblyByName(AssemblyName, String[]) |
Végrehajtja a megadott szerelvényt AssemblyNamea megadott argumentumok használatával. |
| ExecuteAssemblyByName(String, Evidence, String[]) |
Elavult.
Végrehajtja a szerelvényt a megjelenített név alapján, a megadott bizonyítékok és argumentumok használatával. |
| ExecuteAssemblyByName(String, Evidence) |
Elavult.
Végrehajt egy szerelvényt a megjelenített név alapján, a megadott bizonyíték használatával. |
| ExecuteAssemblyByName(String, String[]) |
A megadott argumentumok használatával végrehajtja a szerelvényt a megjelenített név alapján. |
| ExecuteAssemblyByName(String) |
Végrehajt egy szerelvényt a megjelenítendő név alapján. |
| GetAssemblies() |
Lekéri az alkalmazástartomány végrehajtási környezetébe betöltött szerelvényeket. |
| GetCurrentThreadId() |
Elavult.
Elavult.
Elavult.
Elavult.
Lekéri az aktuális szálazonosítót. |
| GetData(String) |
Lekéri a megadott név aktuális alkalmazástartományában tárolt értéket. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetType() |
Lekéri az aktuális példány típusát. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
AppDomain Végtelen élettartamot ad a bérlet létrehozásának megakadályozásával. |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| IsCompatibilitySwitchSet(String) |
Null értékű logikai értéket kap, amely jelzi, hogy be van-e állítva bármilyen kompatibilitási kapcsoló, és ha igen, be van-e állítva a megadott kompatibilitási kapcsoló. |
| IsDefaultAppDomain() |
Olyan értéket ad vissza, amely jelzi, hogy az alkalmazástartomány-e a folyamat alapértelmezett alkalmazástartománya. |
| IsFinalizingForUnload() |
Azt jelzi, hogy az alkalmazástartomány kiürítve van-e, és a benne található objektumokat a közös nyelvi futtatókörnyezet véglegesítette. |
| Load(AssemblyName, Evidence) |
Elavult.
Betölt egy Assembly adott saját .AssemblyName |
| Load(AssemblyName) |
Betölt egy Assembly adott saját .AssemblyName |
| Load(Byte[], Byte[], Evidence) |
Elavult.
Betölti a Assembly fájlt egy közös objektumfájl-formátum (COFF) alapú képpel, amely egy kibocsátott Assemblyfájlt tartalmaz. A szimbólumokat jelképező nyers bájtok Assembly is betöltésre kerülnek. |
| Load(Byte[], Byte[]) |
Betölti a Assembly fájlt egy közös objektumfájl-formátum (COFF) alapú képpel, amely egy kibocsátott Assemblyfájlt tartalmaz. A szimbólumokat jelképező nyers bájtok Assembly is betöltésre kerülnek. |
| Load(Byte[]) |
Betölti a Assembly fájlt egy közös objektumfájl-formátum (COFF) alapú képpel, amely egy kibocsátott Assemblyfájlt tartalmaz. |
| Load(String, Evidence) |
Elavult.
Betölt egy Assembly adott megjelenítendő nevet. |
| Load(String) |
Betölt egy Assembly adott megjelenítendő nevet. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| ReflectionOnlyGetAssemblies() |
Azokat a szerelvényeket adja vissza, amelyeket az alkalmazástartomány csak tükrözési környezetébe töltöttek be. |
| SetAppDomainPolicy(PolicyLevel) |
Elavult.
Létrehozza az alkalmazástartomány biztonsági szabályzatának szintjét. |
| SetCachePath(String) |
Elavult.
Elavult.
Elavult.
A megadott könyvtár elérési útját hozza létre az a hely, ahol a szerelvények árnyékmásolata található. |
| SetData(String, Object, IPermission) |
Hozzárendeli a megadott értéket a megadott alkalmazástartomány-tulajdonsághoz, a tulajdonság lekérésekor a hívó igényének megadására vonatkozó engedéllyel. |
| SetData(String, Object) |
Hozzárendeli a megadott értéket a megadott alkalmazástartomány-tulajdonsághoz. |
| SetDynamicBase(String) |
Elavult.
Elavult.
Elavult.
A megadott könyvtár elérési útját alapkönyvtárként hozza létre azokhoz az alkönyvtárakhoz, ahol a dinamikusan létrehozott fájlok tárolása és elérése történik. |
| SetPrincipalPolicy(PrincipalPolicy) |
Megadja, hogy az egyszerű és az identitásobjektumok hogyan legyenek csatolva egy szálhoz, ha a szál az alkalmazástartományban való végrehajtás során megpróbál csatlakozni egy egyszerűhöz. |
| SetShadowCopyFiles() |
Elavult.
Elavult.
Elavult.
Bekapcsolja az árnyékmásolást. |
| SetShadowCopyPath(String) |
Elavult.
Elavult.
Elavult.
A megadott könyvtár elérési útját hozza létre az árnyékmásolni kívánt szerelvények helyeként. |
| SetThreadPrincipal(IPrincipal) |
Beállítja, hogy az alapértelmezett egyszerű objektum csatolva legyen a szálakhoz, ha egy egyszerű objektumhoz próbálnak kapcsolódni az alkalmazástartományban való végrehajtás során. |
| ToString() |
Lekér egy sztring-reprezentációt, amely tartalmazza az alkalmazástartomány felhasználóbarát nevét és a környezetszabályzatokat. |
| Unload(AppDomain) |
Elavult.
Eltávolítja a megadott alkalmazástartományt. |
esemény
| Name | Description |
|---|---|
| AssemblyLoad |
Egy szerelvény betöltésekor következik be. |
| AssemblyResolve |
Akkor fordul elő, ha egy szerelvény feloldása meghiúsul. |
| DomainUnload |
Akkor fordul elő, ha egy AppDomain éppen kipakolni készül. |
| FirstChanceException |
Ez akkor fordul elő, ha kivételt ad a felügyelt kódban, mielőtt a futtatókörnyezet megkeresi a hívásvermet egy kivételkezelőben az alkalmazástartományban. |
| ProcessExit |
Akkor fordul elő, ha az alapértelmezett alkalmazástartomány szülőfolyamata kilép. |
| ReflectionOnlyAssemblyResolve |
Akkor fordul elő, ha egy szerelvény megoldása a csak tükröződés kontextusában meghiúsul. |
| ResourceResolve |
Akkor fordul elő, ha egy erőforrás feloldása meghiúsul, mert az erőforrás nem érvényes csatolt vagy beágyazott erőforrás a szerelvényben. |
| TypeResolve |
Akkor fordul elő, ha egy típus feloldása meghiúsul. |
| UnhandledException |
Akkor fordul elő, ha a rendszer nem kap kivételt. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. |
| _AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek aztán a felület típusadatainak lekérésére használhatók. |
| _AppDomain.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). |
| _AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. |