Sdílet prostřednictvím


AppDomain Třída

Definice

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.

Platí pro

Viz také