Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jakmile dokončíte používání domény aplikace, uvolňete ji pomocí metody System.AppDomain.Unload. Metoda Unload řádně vypne zadanou doménu aplikace. Během procesu uvolňování žádná nové vlákna nemohou přístupovat k doméně aplikace a jsou uvolněny všechny datové struktury pro danou doménu aplikace.
Sestavení načtená do domény aplikace jsou odebrána a nejsou dále k dispozici. Jestliže sestavení v doméně aplikace je neutrální vzhledem k doméně, zůstanou data pro sestavení v paměti, dokud není celý proces ukončen. Neexistuje žádný mechanismus k uvolnění sestavení neutrálního vzhledem k doméně, než ukončení celého procesu. Existují situace, kdy žádost na uvolnění domény aplikace nefunguje a výsledkem je CannotUnloadAppDomainException.
Následující příklad vytvoří novou doménu aplikace nazvanou MyDomain, vytiskne některé informace do konzoly a poté uvolní doménu aplikace. Všimněte si, že se kód poté pokusí vytisknout popisný název uvolněné domény aplikace do konzoly. Tato akce generuje výjimku, která je obsloužena příkazy try/catch na konci programu.
Příklad
Imports System
Imports System.Reflection
Class AppDomain2
Public Shared Sub Main()
Console.WriteLine("Creating new AppDomain.")
Dim domain As AppDomain = AppDomain.CreateDomain("MyDomain", Nothing)
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName)
Console.WriteLine("child domain: " + domain.FriendlyName)
AppDomain.Unload(domain)
Try
Console.WriteLine()
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName)
' The following statement creates an exception because the domain no longer exists.
Console.WriteLine("child domain: " + domain.FriendlyName)
Catch e As AppDomainUnloadedException
Console.WriteLine(e.GetType().FullName)
Console.WriteLine("The appdomain MyDomain does not exist.")
End Try
End Sub
End Class
using System;
using System.Reflection;
class AppDomain2
{
public static void Main()
{
Console.WriteLine("Creating new AppDomain.");
AppDomain domain = AppDomain.CreateDomain("MyDomain", null);
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
Console.WriteLine("child domain: " + domain.FriendlyName);
AppDomain.Unload(domain);
try
{
Console.WriteLine();
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
// The following statement creates an exception because the domain no longer exists.
Console.WriteLine("child domain: " + domain.FriendlyName);
}
catch (AppDomainUnloadedException e)
{
Console.WriteLine(e.GetType().FullName);
Console.WriteLine("The appdomain MyDomain does not exist.");
}
}
}
using namespace System;
using namespace System::Reflection;
ref class AppDomain2
{
public:
static void Main()
{
Console::WriteLine("Creating new AppDomain.");
AppDomain^ domain = AppDomain::CreateDomain("MyDomain", nullptr);
Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
Console::WriteLine("child domain: " + domain->FriendlyName);
AppDomain::Unload(domain);
try
{
Console::WriteLine();
Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
// The following statement creates an exception because the domain no longer exists.
Console::WriteLine("child domain: " + domain->FriendlyName);
}
catch (AppDomainUnloadedException^ e)
{
Console::WriteLine(e->GetType()->FullName);
Console::WriteLine("The appdomain MyDomain does not exist.");
}
}
};
int main()
{
AppDomain2::Main();
}
Viz také
Úkoly
Postupy: Vytvoření domény aplikace
Koncepty
Programování pomocí domén aplikace