AddInToken.Activate 方法

定义

激活外接程序。

重载

Activate<T>(AddInEnvironment)

在另一个外接程序的环境中激活一个外接程序。

Activate<T>(AddInSecurityLevel)

在新应用程序域中激活具有指定信任级别的外接程序。

Activate<T>(AppDomain)

在现有应用程序域中激活外接程序。

Activate<T>(PermissionSet)

在新应用程序域中激活具有指定权限集的外接程序。

Activate<T>(AddInProcess, AddInSecurityLevel)

在外部进程中(且在新应用程序域内)激活具有指定信任级别的外接程序。

Activate<T>(AddInProcess, PermissionSet)

在外部进程中(且在新应用程序域内)激活具有指定权限集的外接程序。

Activate<T>(AddInSecurityLevel, String)

在具有指定名称和信任级别的新应用程序域中激活外接程序。

Activate<T>(AddInEnvironment)

在另一个外接程序的环境中激活一个外接程序。

public:
generic <typename T>
 T Activate(System::AddIn::Hosting::AddInEnvironment ^ environment);
public T Activate<T> (System.AddIn.Hosting.AddInEnvironment environment);
member this.Activate : System.AddIn.Hosting.AddInEnvironment -> 'T
Public Function Activate(Of T) (environment As AddInEnvironment) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

environment
AddInEnvironment

包含原始外接程序的应用程序域和进程。

返回

T

外接程序的宿主视图。

示例

以下示例使用指定的安全级别激活自动生成的应用程序域中的一个外接程序。 然后,它将激活同一应用程序域中的第二个外接程序,并使用第一个外接程序的 AddInEnvironment 对象作为第一个外接程序进行处理。

// Get the AddInController of a
// currently actived add-in (CalcAddIn).
AddInController aiController = AddInController.GetAddInController(CalcAddIn);

// Select another token.
AddInToken selectedToken2 = ChooseAddIn(tokens);

// Activate a second add-in, CalcAddIn2, in the same
// appliation domain and process as the first add-in by passing
// the first add-in's AddInEnvironment object to the Activate method.
AddInEnvironment aiEnvironment = aiController.AddInEnvironment;
Calculator CalcAddIn2 =
    selectedToken2.Activate<Calculator>(aiEnvironment);

// Get the AddInController for the second add-in to compare environments.
AddInController aiController2 = AddInController.GetAddInController(CalcAddIn2);
Console.WriteLine("Add-ins in same application domain: {0}", aiController.AppDomain.Equals(aiController2.AppDomain));
Console.WriteLine("Add-ins in same process: {0}", aiEnvironment.Process.Equals(aiController2.AddInEnvironment.Process));
' Get the AddInController of a 
' currently activated add-in (CalcAddIn).
Dim aiController As AddInController = AddInController.GetAddInController(CalcAddIn)

' Select another token.
Dim selectedToken2 As AddInToken = ChooseAddIn(tokens)

' Activate a second add-in, CalcAddIn2, in the same
' appliation domain and process as the first add-in by passing
' the first add-in's AddInEnvironment object to the Activate method.

Dim aiEnvironment As AddInEnvironment = aiController.AddInEnvironment
Dim CalcAddIn2 As Calculator = _
    selectedToken2.Activate(Of Calculator)(aiEnvironment)

' Get the AddInController for the second add-in to compare environments.
Dim aiController2 As AddInController = AddInController.GetAddInController(CalcAddIn2)

Console.WriteLine("Add-ins in same application domain: {0}", _
    aiController.AppDomain.Equals(aiController2.AppDomain))
Console.WriteLine("Add-ins in same process: {0}", _
    aiEnvironment.Process.Equals(aiController2.AddInEnvironment.Process))

注解

此方法重载激活与从中 environment 获取的外接程序相同的应用程序域和进程中的外接程序。

另请参阅

适用于

Activate<T>(AddInSecurityLevel)

在新应用程序域中激活具有指定信任级别的外接程序。

public:
generic <typename T>
 T Activate(System::AddIn::Hosting::AddInSecurityLevel trustLevel);
public T Activate<T> (System.AddIn.Hosting.AddInSecurityLevel trustLevel);
member this.Activate : System.AddIn.Hosting.AddInSecurityLevel -> 'T
Public Function Activate(Of T) (trustLevel As AddInSecurityLevel) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

trustLevel
AddInSecurityLevel

用于指定信任级别的枚举值之一。

返回

T

外接程序的宿主视图。

示例

以下示例演示如何在具有指定安全级别的自动生成的应用程序域中激活由所选令牌标识的外接程序。

//Ask the user which add-in they would like to use.
AddInToken selectedToken = ChooseAddIn(tokens);

//Activate the selected AddInToken in a new
//application domain with the Internet trust level.
Calculator CalcAddIn = selectedToken.Activate<Calculator>(AddInSecurityLevel.Internet);

//Run the add-in using a custom method.
RunCalculator(CalcAddIn);
'Ask the user which add-in they would like to use.
Dim selectedToken As AddInToken = ChooseAddIn(tokens)
'Activate the selected AddInToken in a new
'application domain with the Internet trust level.
Dim CalcAddIn As Calculator = selectedToken.Activate(Of Calculator)(AddInSecurityLevel.Internet)
'Run the add-in using a custom method.
RunCalculator(CalcAddIn)

注解

此方法重载将加载项加载到自动生成的应用程序域中。 如果要为新的应用程序域指定名称,请使用 Activate<T>(AddInSecurityLevel, String) 重载。

此方法将应用程序域的基目录设置为外接程序程序集的位置。 它还会查找配置文件 [addinassemblyname].dll.config,如果找到,请将其设置为新应用程序域的配置文件。

另请参阅

适用于

Activate<T>(AppDomain)

在现有应用程序域中激活外接程序。

public:
generic <typename T>
 T Activate(AppDomain ^ target);
public T Activate<T> (AppDomain target);
member this.Activate : AppDomain -> 'T
Public Function Activate(Of T) (target As AppDomain) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

target
AppDomain

应在其中激活外接程序的应用程序域。

返回

T

外接程序的宿主视图。

例外

需要完全信任权限。 调用链中的调用方没有足够权限。

示例

以下示例激活另一个外接程序正在使用的应用程序域中的加载项。 类中提供了第一个外接程序的代码 AddInToken

// Get the application domain
// of an existing add-in (CalcAddIn).
AddInController aiCtrl = AddInController.GetAddInController(CalcAddIn);
AppDomain AddInAppDom = aiCtrl.AppDomain;

// Activate another add-in in the same application domain.
Calculator CalcAddIn3 =
    selectedToken2.Activate<Calculator>(AddInAppDom);

// Show that CalcAddIn3 was loaded
// into CalcAddIn's application domain.
AddInController aic = AddInController.GetAddInController(CalcAddIn3);
Console.WriteLine("Add-in loaded into existing application domain: {0}",
    aic.AppDomain.Equals(AddInAppDom));
' Get the application domain
' of an existing add-in (CalcAddIn).

Dim aiCtrl As AddInController = AddInController.GetAddInController(CalcAddIn)
Dim AddInAppDom As AppDomain = aiCtrl.AppDomain

' Activate another add-in in the same appliation domain.
Dim CalcAddIn3 As Calculator = selectedToken2.Activate(Of Calculator)(AddInAppDom)

' Show that the CalcAddIn3 was loaded
' into CalcCaddIn's application domain.
Dim aic As AddInController = AddInController.GetAddInController(CalcAddIn3)
Console.WriteLine("Add-in loaded into existing application domain: {0}", _
 aic.AppDomain.Equals(AddInAppDom))

注解

若要在自动生成的应用程序域中激活加载项,请使用 Activate<T>(AddInSecurityLevel) 重载生成具有指定安全级别的新应用程序域,或使用 Activate<T>(AddInSecurityLevel, String) 重载来包含应用程序域的友好名称。

适用于

Activate<T>(PermissionSet)

在新应用程序域中激活具有指定权限集的外接程序。

public:
generic <typename T>
 T Activate(System::Security::PermissionSet ^ permissions);
public T Activate<T> (System.Security.PermissionSet permissions);
member this.Activate : System.Security.PermissionSet -> 'T
Public Function Activate(Of T) (permissions As PermissionSet) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

permissions
PermissionSet

授予外接程序的权限。

返回

T

外接程序的宿主视图。

例外

permissionsnull

注解

此方法重载将加载项加载到自动生成的应用程序域中。 它将应用程序域的基目录设置为外接程序程序集的位置。 它还会查找配置文件 [addinassemblyname].dll.config ,如果找到,则将其设置为新应用程序域的配置文件。

适用于

Activate<T>(AddInProcess, AddInSecurityLevel)

在外部进程中(且在新应用程序域内)激活具有指定信任级别的外接程序。

public:
generic <typename T>
 T Activate(System::AddIn::Hosting::AddInProcess ^ process, System::AddIn::Hosting::AddInSecurityLevel level);
public T Activate<T> (System.AddIn.Hosting.AddInProcess process, System.AddIn.Hosting.AddInSecurityLevel level);
member this.Activate : System.AddIn.Hosting.AddInProcess * System.AddIn.Hosting.AddInSecurityLevel -> 'T
Public Function Activate(Of T) (process As AddInProcess, level As AddInSecurityLevel) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

process
AddInProcess

在其中激活外接程序的外部进程。

level
AddInSecurityLevel

用于指定信任级别的枚举值之一。

返回

T

外接程序的宿主视图。

示例

以下示例创建一个新进程,并在该进程中激活具有完全信任安全级别的加载项。

// Create an external process.
AddInProcess pExternal = new AddInProcess();

// Activate an add-in in the external process
// with a full trust security level.
Calculator CalcAddIn4 =
    selectedToken.Activate<Calculator>(pExternal,
    AddInSecurityLevel.FullTrust);

// Show that the add-in is an external process
// by verifying that it is not in the current (host's) process.
AddInController AddinCtl = AddInController.GetAddInController(CalcAddIn4);
Console.WriteLine("Add-in in host's process: {0}",
    AddinCtl.AddInEnvironment.Process.IsCurrentProcess);
' Create an external process.
Dim pExternal As New AddInProcess()

' Activate an add-in in the external process
' with a full trust security level.
Dim CalcAddIn4 As Calculator = _
    selectedToken.Activate(Of Calculator)(pExternal, _
        AddInSecurityLevel.FullTrust)

' Show that the add-in is an external process
' by verifying that it is not in the current (host's) process.
Dim AddinCtl As AddInController = AddInController.GetAddInController(CalcAddIn4)
Console.WriteLine("Add-in in host's process: {0}", _
 AddinCtl.AddInEnvironment.Process.IsCurrentProcess)

注解

此方法将应用程序域的基目录设置为外接程序程序集的位置。 它还会查找配置文件 [addinassemblyname].dll.config ,如果找到,则将其设置为新应用程序域的配置文件。

适用于

Activate<T>(AddInProcess, PermissionSet)

在外部进程中(且在新应用程序域内)激活具有指定权限集的外接程序。

public:
generic <typename T>
 T Activate(System::AddIn::Hosting::AddInProcess ^ process, System::Security::PermissionSet ^ permissionSet);
public T Activate<T> (System.AddIn.Hosting.AddInProcess process, System.Security.PermissionSet permissionSet);
member this.Activate : System.AddIn.Hosting.AddInProcess * System.Security.PermissionSet -> 'T
Public Function Activate(Of T) (process As AddInProcess, permissionSet As PermissionSet) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

process
AddInProcess

在其中激活外接程序的外部进程。

permissionSet
PermissionSet

授予外接程序的必需权限集。

返回

T

外接程序的宿主视图。

注解

此方法将应用程序域的基目录设置为外接程序程序集的位置。 它还会查找配置文件 [addinassemblyname].dll.config ,如果找到,则将其设置为新应用程序域的配置文件。

适用于

Activate<T>(AddInSecurityLevel, String)

在具有指定名称和信任级别的新应用程序域中激活外接程序。

public:
generic <typename T>
 T Activate(System::AddIn::Hosting::AddInSecurityLevel trustLevel, System::String ^ appDomainName);
public T Activate<T> (System.AddIn.Hosting.AddInSecurityLevel trustLevel, string appDomainName);
member this.Activate : System.AddIn.Hosting.AddInSecurityLevel * string -> 'T
Public Function Activate(Of T) (trustLevel As AddInSecurityLevel, appDomainName As String) As T

类型参数

T

表示外接程序的宿主视图的接口或抽象基类型。

参数

trustLevel
AddInSecurityLevel

用于指定信任级别的枚举值之一。

appDomainName
String

要分配给新应用程序域的友好名称。

返回

T

外接程序的宿主视图。

注解

如果不需要指定应用程序域名,请使用 Activate<T>(AddInSecurityLevel) 重载。

此方法将应用程序域的基目录设置为外接程序程序集的位置。 它还会查找配置文件 [addinassemblyname].dll.config ,如果找到,则将其设置为新应用程序域的配置文件。

适用于