Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


AppDomain Klasa

Definicja

Reprezentuje domenę aplikacji, która jest izolowanym środowiskiem, w którym są wykonywane aplikacje. Klasa ta nie może być dziedziczona.

public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject
type AppDomain = class
    inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
Dziedziczenie
Atrybuty
Implementuje

Przykłady

W tym przykładzie pokazano, jak utworzyć nowy AppDomainobiekt , utworzyć wystąpienie typu w tym nowym AppDomainobiekcie i komunikować się z obiektem tego typu. Ponadto w tym przykładzie pokazano, jak zwolnić AppDomain obiekt powodujący wyrzucanie pamięci.

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.

Uwagi

Domeny aplikacji, które są reprezentowane przez AppDomain obiekty, pomagają zapewnić izolację, zwalnianie i granice zabezpieczeń na potrzeby wykonywania kodu zarządzanego.

  • Używanie domen aplikacji do izolowania zadań, które mogą spowodować wyłączenie procesu. Jeśli stan AppDomain wykonywania zadania staje się niestabilny, AppDomain można go zwolnić bez wpływu na proces. Jest to ważne, gdy proces musi działać przez długi czas bez ponownego uruchamiania. Można również używać domen aplikacji do izolowania zadań, które nie powinny udostępniać danych.

  • Jeśli zestaw jest ładowany do domyślnej domeny aplikacji, nie można go zwolnić z pamięci, gdy proces jest uruchomiony. Jeśli jednak otworzysz drugą domenę aplikacji, aby załadować i wykonać zestaw, zestaw zostanie zwolniony po wyłączeniu tej domeny aplikacji. Ta technika pozwala zminimalizować działający zestaw długotrwałych procesów, które czasami używają dużych bibliotek DLL.

Uwaga

Na platformie .NET Core implementacja jest ograniczona AppDomain przez projekt i nie zapewnia izolacji, zwalniania ani granic zabezpieczeń. W przypadku platformy .NET Core istnieje dokładnie jeden AppDomainelement . Izolacja i zwalnianie są udostępniane za pośrednictwem usługi AssemblyLoadContext. Granice zabezpieczeń powinny być zapewniane przez granice procesów i odpowiednie techniki komunikacji zdalniej.

Wiele domen aplikacji można uruchomić w jednym procesie; nie istnieje jednak korelacja "jeden do jednego" między domenami aplikacji i wątkami. Kilka wątków może należeć do jednej domeny aplikacji, a dany wątek nie jest ograniczony do jednej domeny aplikacji, w danym momencie wątek jest wykonywany w jednej domenie aplikacji.

Domeny aplikacji są tworzone przy użyciu CreateDomain metody . AppDomain wystąpienia są używane do ładowania i wykonywania zestawów (Assembly). Gdy obiekt AppDomain nie jest już używany, można go zwolnić.

Klasa AppDomain implementuje zestaw zdarzeń, które umożliwiają aplikacjom reagowanie po załadowaniu zestawu, gdy domena aplikacji zostanie zwolniona lub gdy zostanie zgłoszony nieobsługiwany wyjątek.

Aby uzyskać więcej informacji na temat korzystania z domen aplikacji, zobacz Domeny aplikacji.

Ta klasa implementuje MarshalByRefObjectinterfejsy , _AppDomaini IEvidenceFactory .

Nigdy nie należy tworzyć otoki z obsługą zdalną AppDomain dla obiektu. Może to spowodować opublikowanie odwołania zdalnego do tego AppDomainelementu , uwidaczniając metody takie jak CreateInstance dostęp zdalny i skutecznie niszcząc zabezpieczenia dostępu kodu dla tego AppDomainelementu . Złośliwi klienci łączący się ze zdalnym AppDomain dostępem mogą uzyskać dostęp do dowolnego zasobu, do którego AppDomain ma dostęp sam. Nie należy tworzyć otoek remotable dla dowolnego typu, który rozszerza MarshalByRefObject i implementuje metody, które mogą być używane przez złośliwych klientów do obejścia systemu zabezpieczeń.

Przestroga

Wartość domyślna AppDomainSetup.DisallowCodeDownload właściwości to false. To ustawienie jest niebezpieczne dla usług. Aby uniemożliwić usługom pobieranie częściowo zaufanego kodu, ustaw tę właściwość na truewartość .

Właściwości

ActivationContext

Pobiera kontekst aktywacji dla bieżącej domeny aplikacji.

ApplicationIdentity

Pobiera tożsamość aplikacji w domenie aplikacji.

ApplicationTrust

Pobiera informacje opisujące uprawnienia przyznane aplikacji oraz informacje o tym, czy aplikacja ma poziom zaufania, który umożliwia jej uruchomienie.

BaseDirectory

Pobiera katalog podstawowy używany przez program rozpoznawania zestawów do sondowania zestawów.

CurrentDomain

Pobiera bieżącą domenę aplikacji dla bieżącego Threadpliku .

DomainManager

Pobiera menedżera domeny, który został dostarczony przez hosta podczas inicjowania domeny aplikacji.

DynamicDirectory

Pobiera katalog używany przez program rozpoznawania zestawów do sondowania dynamicznie utworzonych zestawów.

Evidence

Evidence Pobiera skojarzone z tą domeną aplikacji.

FriendlyName

Pobiera przyjazną nazwę tej domeny aplikacji.

Id

Pobiera liczbę całkowitą, która unikatowo identyfikuje domenę aplikacji w procesie.

IsFullyTrusted

Pobiera wartość wskazującą, czy zestawy ładowane do bieżącej domeny aplikacji są wykonywane z pełnym zaufaniem.

IsHomogenous

Pobiera wartość wskazującą, czy bieżąca domena aplikacji ma zestaw uprawnień przyznanych wszystkim zestawom ładowanym do domeny aplikacji.

MonitoringIsEnabled

Pobiera lub ustawia wartość wskazującą, czy dla bieżącego procesu włączono monitorowanie procesora CPU i pamięci domen aplikacji. Po włączeniu monitorowania dla procesu nie można go wyłączyć.

MonitoringSurvivedMemorySize

Pobiera liczbę bajtów, które przetrwały ostatnią kolekcję i o których wiadomo, że są przywoływanych przez bieżącą domenę aplikacji.

MonitoringSurvivedProcessMemorySize

Pobiera łączną liczbę bajtów, które przetrwały z ostatniej kolekcji dla wszystkich domen aplikacji w procesie.

MonitoringTotalAllocatedMemorySize

Pobiera całkowity rozmiar w bajtach wszystkich alokacji pamięci, które zostały wykonane przez domenę aplikacji od momentu jej utworzenia, bez odejmowania pamięci, która została zebrana.

MonitoringTotalProcessorTime

Pobiera łączny czas procesora, który był używany przez wszystkie wątki podczas wykonywania w bieżącej domenie aplikacji, od momentu uruchomienia procesu.

PermissionSet
Nieaktualne.

Pobiera zestaw uprawnień domeny aplikacji w trybie piaskownicy.

RelativeSearchPath

Pobiera ścieżkę w katalogu podstawowym, w którym program rozpoznawania zestawów powinien sondować zestawy prywatne.

SetupInformation

Pobiera informacje o konfiguracji domeny aplikacji dla tego wystąpienia.

ShadowCopyFiles

Pobiera wskazanie, czy domena aplikacji jest skonfigurowana do kopiowania plików w tle.

Metody

AppendPrivatePath(String)
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Dołącza określoną nazwę katalogu do listy ścieżek prywatnych.

ApplyPolicy(String)

Zwraca nazwę wyświetlaną zestawu po zastosowaniu zasad.

ClearPrivatePath()
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Resetuje ścieżkę określającą lokalizację zestawów prywatnych do pustego ciągu ("").

ClearShadowCopyPath()
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Resetuje listę katalogów zawierających zestawy kopiowane w tle do pustego ciągu ("").

CreateComInstanceFrom(String, String)

Tworzy nowe wystąpienie określonego typu COM. Parametry określają nazwę pliku zawierającego zestaw zawierający typ i nazwę typu.

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

Tworzy nowe wystąpienie określonego typu COM. Parametry określają nazwę pliku zawierającego zestaw zawierający typ i nazwę typu.

CreateDomain(String)
Nieaktualne.

Tworzy nową domenę aplikacji o określonej nazwie.

CreateDomain(String, Evidence)

Tworzy nową domenę aplikacji o podanej nazwie przy użyciu dostarczonych dowodów.

CreateDomain(String, Evidence, AppDomainSetup)

Tworzy nową domenę aplikacji przy użyciu określonej nazwy, dowodów i informacji o konfiguracji domeny aplikacji.

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

Tworzy nową domenę aplikacji przy użyciu określonej nazwy, dowodów, informacji o konfiguracji domeny aplikacji, domyślnego zestawu uprawnień i tablicy w pełni zaufanych zestawów.

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

Tworzy nową domenę aplikacji o podanej nazwie, używając dowodów, ścieżki podstawowej aplikacji, względnej ścieżki wyszukiwania i parametru określającego, czy kopia w tle zestawu ma zostać załadowana do domeny aplikacji.

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

Tworzy nową domenę aplikacji o podanej nazwie, używając dowodów, ścieżki podstawowej aplikacji, względnej ścieżki wyszukiwania i parametru określającego, czy kopia w tle zestawu ma zostać załadowana do domeny aplikacji. Określa metodę wywołania zwrotnego wywoływaną podczas inicjowania domeny aplikacji oraz tablicę argumentów ciągu do przekazania metody wywołania zwrotnego.

CreateInstance(String, String)

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym zestawie.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym zestawie. Parametry określają binder, flagi powiązania, argumenty konstruktora, informacje specyficzne dla kultury używane do interpretowania argumentów i opcjonalne atrybuty aktywacji.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym zestawie. Parametry określają binder, flagi powiązania, argumenty konstruktora, informacje specyficzne dla kultury używane do interpretowania argumentów, atrybutów aktywacji i autoryzacji w celu utworzenia typu.

CreateInstance(String, String, Object[])

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym zestawie. Parametr określa tablicę atrybutów aktywacji.

CreateInstanceAndUnwrap(String, String)

Tworzy nowe wystąpienie określonego typu. Parametry określają zestaw, w którym zdefiniowano typ, oraz nazwę typu.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w określonym zestawie, określając, czy przypadek nazwy typu jest ignorowany; atrybuty powiązania i binder, który jest używany do wybierania typu do utworzenia; argumenty konstruktora; kultura; oraz atrybuty aktywacji.

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

Tworzy nowe wystąpienie określonego typu. Parametry określają nazwę typu oraz sposób jego znajdowania i tworzenia.

CreateInstanceAndUnwrap(String, String, Object[])

Tworzy nowe wystąpienie określonego typu. Parametry określają zestaw, w którym zdefiniowano typ, nazwę typu i tablicę atrybutów aktywacji.

CreateInstanceFrom(String, String)

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

CreateInstanceFrom(String, String, Object[])

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

CreateInstanceFromAndUnwrap(String, String)

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w określonym pliku zestawu, określając, czy przypadek nazwy typu jest ignorowany; atrybuty powiązania i binder, który jest używany do wybierania typu do utworzenia; argumenty konstruktora; kultura; oraz atrybuty aktywacji.

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

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

CreateInstanceFromAndUnwrap(String, String, Object[])

Tworzy nowe wystąpienie określonego typu zdefiniowanego w podanym pliku zestawu.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Definiuje zestaw dynamiczny z określoną nazwą i trybem dostępu.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu i dowodów.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, dowodów i żądań uprawnień.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Definiuje zestaw dynamiczny o określonej nazwie, trybie dostępu i atrybutach niestandardowych.

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

Definiuje zestaw dynamiczny o określonej nazwie, trybie dostępu i atrybutach niestandardowych oraz przy użyciu określonego źródła dla kontekstu zabezpieczeń.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu i żądań uprawnień.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu i katalogu magazynu.

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

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, katalogu magazynu i opcji synchronizacji.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, katalogu magazynu i dowodów.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, katalogu magazynu, dowodów i żądań uprawnień.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, katalogu magazynu, dowodów, żądań uprawnień i opcji synchronizacji.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny o określonej nazwie, trybie dostępu, katalogu magazynu, dowodach, żądaniach uprawnień, opcji synchronizacji i atrybutach niestandardowych.

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)
Nieaktualne.
Nieaktualne.

Definiuje zestaw dynamiczny przy użyciu określonej nazwy, trybu dostępu, katalogu magazynu i żądań uprawnień.

DoCallBack(CrossAppDomainDelegate)

Wykonuje kod w innej domenie aplikacji, która jest identyfikowana przez określonego delegata.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
ExecuteAssembly(String)

Wykonuje zestaw zawarty w określonym pliku.

ExecuteAssembly(String, Evidence)
Nieaktualne.
Nieaktualne.

Wykonuje zestaw zawarty w określonym pliku przy użyciu określonych dowodów.

ExecuteAssembly(String, Evidence, String[])
Nieaktualne.
Nieaktualne.

Wykonuje zestaw zawarty w określonym pliku przy użyciu określonych dowodów i argumentów.

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)
Nieaktualne.
Nieaktualne.

Wykonuje zestaw zawarty w określonym pliku przy użyciu określonych dowodów, argumentów, wartości skrótu i algorytmu skrótu.

ExecuteAssembly(String, String[])

Wykonuje zestaw zawarty w określonym pliku przy użyciu określonych argumentów.

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)
Nieaktualne.

Wykonuje zestaw zawarty w określonym pliku przy użyciu określonych argumentów, wartości skrótu i algorytmu skrótu.

ExecuteAssemblyByName(AssemblyName, Evidence, String[])
Nieaktualne.
Nieaktualne.

Wykonuje zestaw przy AssemblyNameużyciu określonego dowodu i argumentów.

ExecuteAssemblyByName(AssemblyName, String[])

Wykonuje zestaw, używając AssemblyNameokreślonych argumentów.

ExecuteAssemblyByName(String)

Wykonuje zestaw pod nazwą wyświetlaną.

ExecuteAssemblyByName(String, Evidence)
Nieaktualne.
Nieaktualne.

Wykonuje zestaw pod nazwą wyświetlaną przy użyciu określonych dowodów.

ExecuteAssemblyByName(String, Evidence, String[])
Nieaktualne.
Nieaktualne.

Wykonuje zestaw pod nazwą wyświetlaną przy użyciu określonych dowodów i argumentów.

ExecuteAssemblyByName(String, String[])

Wykonuje zestaw pod nazwą wyświetlaną przy użyciu określonych argumentów.

GetAssemblies()

Pobiera zestawy, które zostały załadowane do kontekstu wykonywania tej domeny aplikacji.

GetCurrentThreadId()
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Pobiera bieżący identyfikator wątku.

GetData(String)

Pobiera wartość przechowywaną w bieżącej domenie aplikacji dla określonej nazwy.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Pobiera typ bieżącego wystąpienia.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()

Daje nieskończony AppDomain okres istnienia, uniemożliwiając utworzenie dzierżawy.

InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
IsCompatibilitySwitchSet(String)

Pobiera wartość logiczną dopuszczaną do wartości null, która wskazuje, czy są ustawione jakiekolwiek przełączniki zgodności, a jeśli tak, czy określony przełącznik zgodności jest ustawiony.

IsDefaultAppDomain()

Zwraca wartość wskazującą, czy domena aplikacji jest domyślną domeną aplikacji dla procesu.

IsFinalizingForUnload()

Wskazuje, czy ta domena aplikacji jest zwalniana, a zawarte w niej obiekty są finalizowane przez środowisko uruchomieniowe języka wspólnego.

Load(AssemblyName)

Ładuje dany element Assembly AssemblyName.

Load(AssemblyName, Evidence)
Nieaktualne.
Nieaktualne.

Ładuje dany element Assembly AssemblyName.

Load(Byte[])

Ładuje obraz Assembly z typowym formatem pliku obiektu (COFF) zawierającym emitowany Assemblyelement .

Load(Byte[], Byte[])

Ładuje obraz Assembly z typowym formatem pliku obiektu (COFF) zawierającym emitowany Assemblyelement . Ładowane są również nieprzetworzone bajty reprezentujące symbole elementu Assembly .

Load(Byte[], Byte[], Evidence)
Nieaktualne.
Nieaktualne.

Ładuje obraz Assembly z typowym formatem pliku obiektu (COFF) zawierającym emitowany Assemblyelement . Ładowane są również nieprzetworzone bajty reprezentujące symbole elementu Assembly .

Load(String)

Ładuje daną nazwę wyświetlaną Assembly .

Load(String, Evidence)
Nieaktualne.
Nieaktualne.

Ładuje daną nazwę wyświetlaną Assembly .

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ReflectionOnlyGetAssemblies()

Zwraca zestawy, które zostały załadowane do kontekstu tylko odbicia domeny aplikacji.

SetAppDomainPolicy(PolicyLevel)
Nieaktualne.
Nieaktualne.

Określa poziom zasad zabezpieczeń dla tej domeny aplikacji.

SetCachePath(String)
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Określa określoną ścieżkę katalogu jako lokalizację, w której zestawy są kopiowane w tle.

SetData(String, Object)

Przypisuje określoną wartość do określonej właściwości domeny aplikacji.

SetData(String, Object, IPermission)

Przypisuje określoną wartość do określonej właściwości domeny aplikacji z określonym uprawnieniem do żądania obiektu wywołującego po pobraniu właściwości.

SetDynamicBase(String)
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Ustanawia określoną ścieżkę katalogu jako katalog podstawowy dla podkatalogów, w których dynamicznie generowane pliki są przechowywane i dostępne.

SetPrincipalPolicy(PrincipalPolicy)

Określa sposób dołączania obiektów podmiotu zabezpieczeń i tożsamości do wątku, jeśli wątek próbuje powiązać z podmiotem zabezpieczeń podczas wykonywania w tej domenie aplikacji.

SetShadowCopyFiles()
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Włącza kopiowanie w tle.

SetShadowCopyPath(String)
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Określa określoną ścieżkę katalogu jako lokalizację zestawów do skopiowania w tle.

SetThreadPrincipal(IPrincipal)

Ustawia domyślny obiekt podmiotu zabezpieczeń, który ma być dołączony do wątków, jeśli próbuje powiązać z podmiotem zabezpieczeń podczas wykonywania w tej domenie aplikacji.

ToString()

Uzyskuje reprezentację ciągu, która zawiera przyjazną nazwę domeny aplikacji i wszelkie zasady kontekstu.

Unload(AppDomain)
Nieaktualne.

Zwalnia określoną domenę aplikacji.

Zdarzenia

AssemblyLoad

Występuje po załadowaniu zestawu.

AssemblyResolve

Występuje, gdy rozwiązanie zestawu kończy się niepowodzeniem.

DomainUnload

Występuje, gdy obiekt AppDomain zostanie rozładowany.

FirstChanceException

Występuje, gdy wyjątek jest zgłaszany w kodzie zarządzanym, zanim środowisko uruchomieniowe przeszukuje stos wywołań dla procedury obsługi wyjątków w domenie aplikacji.

ProcessExit

Występuje, gdy proces nadrzędny domeny domyślnej aplikacji kończy się.

ReflectionOnlyAssemblyResolve

Występuje, gdy rozpoznawanie zestawu kończy się niepowodzeniem w kontekście tylko odbicia.

ResourceResolve

Występuje, gdy rozwiązanie zasobu kończy się niepowodzeniem, ponieważ zasób nie jest prawidłowym zasobem połączonym lub osadzonym w zestawie.

TypeResolve

Występuje, gdy rozpoznawanie typu kończy się niepowodzeniem.

UnhandledException

Występuje, gdy wyjątek nie jest przechwytywane.

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu.

_AppDomain.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

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

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

Dotyczy

Zobacz też