다음을 통해 공유


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

적용 대상