System.AddIn.Contract.Automation Namespace

The System.AddIn.Contract.Automation namespace contains interfaces that components use to access type information and invoke type members.

Structs

RemoteFieldData

Provides information about a field of a type that components can access across application domain and process boundaries.

RemoteMemberData

Provides information about a member of a type that components can access across application domain and process boundaries.

RemoteMethodData

Provides information about a method of a type that components can access across application domain and process boundaries.

RemoteParameterData

Provides information about a parameter or return value of a method that belongs to a type that components can access across application domain and process boundaries.

RemotePropertyData

Provides information about a property of a type that components can access across application domain and process boundaries.

RemoteTypeData

Provides information about a type that components can access across application domain and process boundaries.

Interfaces

IRemoteDelegateContract

Defines a contract that components can use to access a delegate across application domain and process boundaries.

IRemoteEventInfoContract

Defines a contract that components can use to access information about an event across application domain and process boundaries.

IRemoteFieldInfoContract

Defines a contract that components can use to access information about a field across application domain and process boundaries.

IRemoteMethodInfoContract

Defines a contract that components can use to access information about a method across application domain and process boundaries.

IRemoteObjectContract

Defines a contract that components can use to access an object across application domain and process boundaries.

IRemotePropertyInfoContract

Defines a contract that components can use to access information about a property across application domain and process boundaries.

IRemoteTypeContract

Defines a contract that components can use to access type information and invoke members across application domain and process boundaries.

Remarks

Use the interfaces in the System.AddIn.Contract.Automation namespace to enable components to access type information for a remote object without having direct access to the Type of the remote object. The System.AddIn.Contract.Automation namespace defines reflection functionality for components that use the interfaces and structures in the System.AddIn.Contract, System.AddIn.Contract.Automation, and System.AddIn.Contract.Collections namespaces to communicate. The interfaces in these namespaces are also called contracts. All contracts derive from the IContract interface.

When using contracts to manage the communication between components, you must implement the IRemoteObjectContract interface in a type to expose the type information to other components. Components can then access the members of the type by calling the GetRemoteType method of the interface to get an IRemoteTypeContract. The other interfaces and structures in the System.AddIn.Contract.Automation namespace provide access to type information for delegates, properties, methods, events, and fields.

Components can use the contracts in the System.AddIn.Contract.Automation namespace to access type information for an object that is in a different process or application domain, or in the same process or application domain.