Export (0) Print
Expand All

System.AddIn.Contract Namespace

The System.AddIn.Contract namespace contains interfaces and structures that provide the basis for communication between components that are updated independently.

The System.AddIn.Contract namespace defines a set of interfaces and structures that can be used by independently updated components, such as an application and an add-in, to communicate. Components can use the interfaces and structures in the System.AddIn.Contract namespace to communicate across process or application domain boundaries, or to communicate with other components in the same process or application domain.

The interfaces in the System.AddIn.Contract namespace are also called contracts. All contracts derive from the IContract interface. The purpose that IContract serves for components created using the .NET Framework is similar to the purpose that the IUnknown interface serves for components created using COM. To determine whether an object implements a particular contract, components use the QueryContract method.

The System.AddIn.Contract.Automation and System.AddIn.Contract.Collections namespaces contain additional contracts that supplement the System.AddIn.Contract namespace. The System.AddIn.Contract.Automation namespace contains contracts that components use to access type information and invoke type members. The System.AddIn.Contract.Collections namespace contains contracts that define collections of IContract and RemoteArgument objects.

  Structure Description
Public structure RemoteArgument Represents an instance of a type that can be passed across process and application domain boundaries.
Public structure SerializableObjectData Provides information about a serializable object.

  Interface Description
Public interface IContract Represents the base interface for all contracts that are used for communication between components that are updated independently.
Public interface IEnumeratorContract<T> Enumerates the elements in an IListContract<T> collection.
Public interface IExecutorExtensionContract Defines an interface that host applications can implement to extend add-in executors.
Public interface IListContract<T> Represents a generic list of types that are defined by a contract and are used to pass collections of that contract type between a host and an add-in.
Public interface INativeHandleContract Provides access to a window's handle (Hwnd) from native code.
Public interface IProfferServiceContract Enables clients to provide custom services to components on which the contract is implemented.
Public interface ISerializableObjectContract Defines a contract that provides information about a serializable object.
Public interface IServiceProviderContract Defines a mechanism for retrieving a service contract from a component.

  Enumeration Description
Public enumeration RemoteArgumentKind Specifies the kind of argument that a RemoteArgument represents.
© 2015 Microsoft