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 名前空間

ApplicationActivator コンストラクタ


ApplicationActivator メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ApplicationActivator クラス
System.Runtime.Hosting 名前空間

ApplicationActivator メンバ

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

ApplicationActivator データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ApplicationActivator ApplicationActivator クラス新しインスタンス初期化します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ApplicationActivator クラス
System.Runtime.Hosting 名前空間



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

辞書ショートカット

すべての辞書の索引

「ApplicationActivator」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS