AppDomainSetup.ApplicationName Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает имя приложения.
public:
property System::String ^ ApplicationName { System::String ^ get(); void set(System::String ^ value); };
public string ApplicationName { get; set; }
member this.ApplicationName : string with get, set
Public Property ApplicationName As String
Значение свойства
Имя приложения.
Реализации
Примеры
В следующем примере показано, как задать ApplicationName свойство при создании нового домена приложения.
В примере создается новый домен приложения, а затем вызывается AppDomain.CreateInstanceAndUnwrap метод для загрузки сборки примера в новый домен приложения и создания экземпляра Worker
класса . Класс Worker
наследует MarshalByRefObject, поэтому в примере можно использовать прокси-сервер, возвращенный методом CreateInstanceAndUnwrap , для вызова TestLoad
метода .
Метод TestLoad
загружает указанную сборку. Необходимо указать допустимое полное имя сборки Load(String) или закомментировать метод. Метод TestLoad
выводит список сборок, загруженных в новый домен приложения, показывая, что заданная сборка и пример сборки загружены.
В примере атрибут используется для LoaderOptimizationAttribute того, чтобы сообщить загрузчику сборок, как приложение будет совместно использовать код между доменами приложения.
using namespace System;
using namespace System::Reflection;
using namespace System::Security::Policy;
ref class Worker : MarshalByRefObject
{
public:
void TestLoad()
{
// You must supply a valid fully qualified assembly name here.
Assembly::Load("Text assembly name, Culture, PublicKeyToken, Version");
for each (Assembly^ assem in AppDomain::CurrentDomain->GetAssemblies())
Console::WriteLine(assem->FullName);
}
};
//for evidence Object*
// The following attribute indicates to loader that multiple application
// domains are used in this application.
[LoaderOptimizationAttribute(LoaderOptimization::MultiDomainHost)]
int main()
{
// Create application domain setup information for new application domain.
AppDomainSetup^ domaininfo = gcnew AppDomainSetup;
domaininfo->ApplicationBase = System::Environment::CurrentDirectory;
domaininfo->ApplicationName = "MyMultiDomain Application";
//Create evidence for the new appdomain from evidence of current application domain.
Evidence^ adevidence = AppDomain::CurrentDomain->Evidence;
// Create appdomain.
AppDomain^ newDomain = AppDomain::CreateDomain( "MyMultiDomain", adevidence, domaininfo );
// Load an assembly into the new application domain.
Worker^ w = (Worker^) newDomain->CreateInstanceAndUnwrap(
Worker::typeid->Assembly->GetName()->Name,
"Worker"
);
w->TestLoad();
//Unload the application domain, which also unloads the assembly.
AppDomain::Unload(newDomain);
}
using System;
using System.Reflection;
using System.Security.Policy;
class ADMultiDomain
{
// The following attribute indicates to loader that multiple application
// domains are used in this application.
[LoaderOptimizationAttribute( LoaderOptimization.MultiDomainHost)]
public static void Main()
{
// Create application domain setup information for new application domain.
AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = System.Environment.CurrentDirectory;
domaininfo.ApplicationName = "MyMultiDomain Application";
//Create evidence for the new appdomain from evidence of current application domain.
Evidence adevidence = AppDomain.CurrentDomain.Evidence;
// Create appdomain.
AppDomain newDomain = AppDomain.CreateDomain("MyMultiDomain", adevidence, domaininfo);
// Load an assembly into the new application domain.
Worker w = (Worker) newDomain.CreateInstanceAndUnwrap(
typeof(Worker).Assembly.GetName().Name,
"Worker"
);
w.TestLoad();
//Unload the application domain, which also unloads the assembly.
AppDomain.Unload(newDomain);
}
}
class Worker : MarshalByRefObject
{
internal void TestLoad()
{
// You must supply a valid fully qualified assembly name here.
Assembly.Load("Text assembly name, Culture, PublicKeyToken, Version");
foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
Console.WriteLine(assem.FullName);
}
}
open System
open System.Reflection
type Worker() =
inherit MarshalByRefObject()
member internal _.TestLoad() =
// You must supply a valid fully qualified assembly name here.
Assembly.Load "Text assembly name, Culture, PublicKeyToken, Version" |> ignore
for assem in AppDomain.CurrentDomain.GetAssemblies() do
printfn $"{assem.FullName}"
// The following attribute indicates to loader that multiple application
// domains are used in this application.
[<LoaderOptimizationAttribute(LoaderOptimization.MultiDomainHost)>]
[<EntryPoint>]
let main _ =
// Create application domain setup information for new application domain.
let domaininfo = AppDomainSetup()
domaininfo.ApplicationBase <- System.Environment.CurrentDirectory
domaininfo.ApplicationName <- "MyMultiDomain Application"
//Create evidence for the new appdomain from evidence of current application domain.
let adevidence = AppDomain.CurrentDomain.Evidence
// Create appdomain.
let newDomain = AppDomain.CreateDomain("MyMultiDomain", adevidence, domaininfo)
// Load an assembly into the new application domain.
let w =
newDomain.CreateInstanceAndUnwrap(typeof<Worker>.Assembly.GetName().Name, "Worker" ) :?> Worker
w.TestLoad()
//Unload the application domain, which also unloads the assembly.
AppDomain.Unload newDomain
0
Imports System.Reflection
Imports System.Security.Policy
'Imports System.Data
'for evidence object
Class ADMultiDomain
' The following attribute indicates to loader that multiple application
' domains are used in this application.
<LoaderOptimizationAttribute(LoaderOptimization.MultiDomainHost)> _
Public Shared Sub Main()
' Create application domain setup information for new application domain.
Dim domaininfo As New AppDomainSetup()
domaininfo.ApplicationBase = System.Environment.CurrentDirectory
domaininfo.ApplicationName = "MyMultiDomain Application"
'Create evidence for the new appdomain from evidence of current application domain.
Dim adevidence As Evidence = AppDomain.CurrentDomain.Evidence
' Create appdomain.
Dim newDomain As AppDomain = AppDomain.CreateDomain("MyMultiDomain", adevidence, domaininfo)
'Load an assembly into the new application domain.
Dim w As Worker = CType( _
newDomain.CreateInstanceAndUnwrap(
GetType(Worker).Assembly().GetName().Name, "Worker"),
Worker)
w.TestLoad()
'Unload the application domain, which also unloads the assembly.
AppDomain.Unload(newDomain)
End Sub
End Class
Class Worker
Inherits MarshalByRefObject
Friend Sub TestLoad()
' You must supply a valid assembly display name here.
[Assembly].Load("Text assembly name, Culture, PublicKeyToken, Version")
For Each assem As [Assembly] In AppDomain.CurrentDomain.GetAssemblies()
Console.WriteLine(assem.FullName)
Next
End Sub
End Class