AddInController Class

 

Provides access to an add-in for a variety of tasks.

Namespace:   System.AddIn.Hosting
Assembly:  System.AddIn (in System.AddIn.dll)

System.Object
  System.AddIn.Hosting.AddInController

public sealed class AddInController

NameDescription
System_CAPS_pubpropertyAddInEnvironment

Gets an AddInEnvironment object.

System_CAPS_pubpropertyAppDomain

Gets the application domain that contains an add-in.

System_CAPS_pubpropertyToken

Gets the token that represents the add-in.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodSystem_CAPS_staticGetAddInController(Object)

Obtains the controller for an add-in.

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodShutdown()

Disables an add-in.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

Use this class to perform the following tasks:

  • Use the AddInEnvironment property to obtain an AddInEnvironment object for an add-in. Then use that object to activate other add-ins in the same application domain and process as the original add-in.

  • Use the AppDomain property to obtain an AppDomain object for an add-in. Then use that object to activate other add-ins in the same application domain as the original add-in. Note that because of limitations in cross-process remoting, this scenario will not work with add-ins that are activated in a separate process.

  • Use the Token property to obtain an AddInToken object that represents an add-in.

  • Shut down an add-in with the Shutdown method.

To obtain the controller for an add-in, call the GetAddInController method and pass an instance of the add-in as its parameter.

The following example activates an add-in within the same environment as a previously activated add-in by using an AddInController object.

// 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));

.NET Framework
Available since 3.5

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: