ApplicationActivator クラスとは? わかりやすく解説

ApplicationActivator クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

マニフェストに基づくアセンブリアクティベーション基本クラス提供します

名前空間: System.Runtime.Hosting
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class ApplicationActivator
Dim instance As ApplicationActivator
[ComVisibleAttribute(true)] 
public class ApplicationActivator
[ComVisibleAttribute(true)] 
public ref class ApplicationActivator
/** @attribute ComVisibleAttribute(true) */ 
public class ApplicationActivator
ComVisibleAttribute(true) 
public class ApplicationActivator
解説解説

AppDomain ごとに ApplicationActivator クラスインスタンス1 つ指定されアクティベーション呼び出しは、すべてそのインスタンスルーティングされます。そのため、現在の AppDomain の AppDomainManager で、独自のカスタム ApplicationActivator を提供できますカスタムApplicationActivator提供されない場合は、既定ApplicationActivatorインスタンス作成されます。

既定の CreateInstance メソッド実装動作次の手順示します

  1. アクティブにするアドインの ActivationContext が現在のドメインActivationContext一致するかどうかチェックします一致しない場合は、手順 2進みますそれ以外場合は、アセンブリ実行しオブジェクト ハンドルラップされた結果返します

  2. 新しAppDomainアドインアクティブにします。以下の手順で、アドインの ActivationArguments を使用して新しAppDomain初期化します。

    1. アドインアクティベーション コンテキスト格納している ActivationArguments オブジェクト使用して新しい AppDomainSetup オブジェクト作成します

    2. CreateInstanceHelper メソッド呼び出しAppDomainSetup オブジェクト使用して新しドメイン作成します

    3. CreateInstanceHelper メソッドは、HostSecurityManager.DetermineApplicationTrust メソッド呼び出してアドインの ApplicationTrust オブジェクト取得します。IsApplicationTrustedToRun プロパティtrue返した場合は、アドイン実行されます。それ以外場合は、CreateInstanceHelper から、実行するためのアクセス許可取得できなかったことを示す PolicyException がスローさます。

    4. アドイン実行信頼レベル与えられている場合新しAppDomain作成されアドインActivationContext 用に設定されアドイン読み込まれ実行されます。

    5. アドインアクティベーション結果が、オブジェクト ハンドルラップされて返されます。

カスタム アクティベータで、特定の状況セットに応じてアドインアクティベーションカスタマイズできます。たとえば、カスタム アクティベータで、毎回新しドメイン作成せずに、既存AppDomain探してアドインアクティブ化することなどができます

既存AppDomainアドインアクティブ化するカスタムApplicationActivator動作次の手順示します

  1. カスタム アクティベータは、アクティブ化するアドインと同じ ActivationContext を持つドメイン探します

  2. プロセス内に ActivationContextない場合カスタム アクティベータは、直接 CreateDomain メソッド呼び出して、この ActivationContext新しAppDomain作成するか、この動作基本クラスCreateInstanceHelperデリゲートます。

  3. 同じ ActivationContext既存ドメインがある場合、アクティベータは CreateInstance メソッド呼び出しアクティブ化先ドメインApplicationActivatorデリゲートできます。これは、アクティブ先の AppDomain存在する ApplicationActivatorドメインまたがって呼び出すことになります

使用例使用例

マニフェストに基づくアプリケーション現在の DomainManager から、ApplicationActivator オブジェクト取得する方法次のコード例示します

Imports System
Imports System.Collections
Imports System.Text
Imports System.Security.Policy
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Runtime.Hosting



Public Class Program
    Inherits MarshalByRefObject

    <SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy:=True)>
 _
    Public Shared Sub Main(ByVal
 args() As String)
        '<Snippet2
        ' Get the AppDomainManager from the current domain.
        Dim domainMgr As AppDomainManager =
 AppDomain.CurrentDomain.DomainManager
        ' Get the ApplicationActivator from the AppDomainManager.
        Dim appActivator As ApplicationActivator
 = domainMgr.ApplicationActivator
        Console.WriteLine("Assembly qualified name from the application
 activator.")
        Console.WriteLine(appActivator.GetType().AssemblyQualifiedName)
        Dim ac As ActivationContext = AppDomain.CurrentDomain.ActivationContext
        ' Get the ActivationArguments from the SetupInformation property
 of the domain.
        Dim activationArgs As ActivationArguments
 = AppDomain.CurrentDomain.SetupInformation.ActivationArguments
        ' Get the ActivationContext from the ActivationArguments.
        Dim actContext As ActivationContext
 = activationArgs.ActivationContext
        Console.WriteLine("The ActivationContext.Form property
 value is: " + _
         activationArgs.ActivationContext.Form.ToString())
        Console.Read()

    End Sub 'Main

    <SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy:=True)>
 _
    Public Sub Run()
        Main(New String() {})
        Console.ReadLine()

    End Sub 'Run
End Class 'Program
using System;
using System.Collections;
using System.Text;
using System.Security.Policy;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Runtime.Hosting;

namespace ActivationContextSample
{
    public class Program : MarshalByRefObject
    {
        [SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy=true)]
        public static void
 Main(string[] args)
        {
            // Get the AppDomainManager from the current domain.
            AppDomainManager domainMgr = AppDomain.CurrentDomain.DomainManager;
            // Get the ApplicationActivator from the AppDomainManager.
            ApplicationActivator appActivator = domainMgr.ApplicationActivator;
            Console.WriteLine("Assembly qualified name from the application
 activator.");
            Console.WriteLine(appActivator.GetType().AssemblyQualifiedName);
            // Get the ActivationArguments from the SetupInformation
 property of the domain.
            ActivationArguments activationArgs = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
            // Get the ActivationContext from the ActivationArguments.
            ActivationContext actContext = activationArgs.ActivationContext;
            Console.WriteLine("The ActivationContext.Form property value is:
 " +
                activationArgs.ActivationContext.Form);
            Console.Read();
        }
    [SecurityPermission(SecurityAction.LinkDemand, ControlDomainPolicy=true)]
        public void Run()
        {
            Main(new string[] { });
            Console.ReadLine();
        }
    }
}
継承階層継承階層
System.Object
  System.Runtime.Hosting.ApplicationActivator
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ApplicationActivator メンバ
System.Runtime.Hosting 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ApplicationActivator クラス」の関連用語

ApplicationActivator クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ApplicationActivator クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS