We recommend using Visual Studio 2017

Microsoft.VisualStudio.Tools.Applications.Contract Namespace

The Microsoft.VisualStudio.Tools.Applications.Contract namespace contains contracts that are defined and implemented by Visual Studio Tools for Applications. The contracts support version-independent communication between host applications and add-ins across AppDomain and process boundaries.

All contracts are interfaces that derive from the IContract interface. Visual Studio Tools for Applications uses contracts to enable communication between the add-in and its host application (this communication channel is called the pipeline). The add-in developer does not interact directly with contracts; however, advanced add-in developers can extend the contracts to define custom pipeline implementation.

For more information about the pipeline, see Understanding the Add-in Pipeline in Visual Studio Tools for Applications.

Public classVstaConstantsInfrastructure. Provides constants that Visual Studio Tools for Applications uses to represent the host item provider and host type provider service names that the host exposes to the add-in.

Public structureEntryPointInfoInfrastructure. Defines a structure that contains information about entry points.

Public interfaceIAppInfoContractInfrastructure.
Public interfaceIAppInfoDocumentContractInfrastructure.
Public interfaceICustomAttributeProviderContractInfrastructure. Defines methods that get custom attributes of types from the host object model.
Public interfaceIEntryPointContract2Infrastructure. Loads, initializes, and handles the shut down of entry point classes in the add-in assembly.
Public interfaceIHostItemProviderContract2Infrastructure. Defines a method that returns host objects from the host object model.
Public interfaceIHostTypeProviderContractInfrastructure. Defines a method that enables the add-in to obtain types from the host application's object model. Visual Studio Tools for Applications can use these types to invoke static members.
Public interfaceIInteropObjectContract2Infrastructure. Represents an instance of a COM class in the host object model of a COM host application.
Public interfaceIInteropStreamContractInfrastructure. Defines methods for marshaling COM references across the host application and add-in processes.
Public interfaceIParameterCustomAttributeProviderContractInfrastructure. Defines a method that gets custom parameter attributes of types from the host object model.
Public interfaceIRemoteTypeContract2Infrastructure. Extends System.AddIn.Contract.Automation.IRemoteTypeContract by adding a method for determining whether the class that is represented in the current instance of IRemoteTypeContract2 derives from the class that is represented by the specified canonical name.