Defines the interface for specifying communication timeouts used by channels, channel managers such as channel listeners and channel factories, and service hosts.
Assemblies: System.ServiceModel (in System.ServiceModel.dll)
System.ServiceModel.Primitives (in System.ServiceModel.Primitives.dll)
Thetype exposes the following members.
|CloseTimeout||Gets the interval of time after which the close method, invoked by a communication object, times out.|
|OpenTimeout||Gets the interval of time after which the open method, invoked by a communication object, times out.|
|ReceiveTimeout||Gets the interval of time after which the receive method, invoked by a communication object, times out.|
|SendTimeout||Gets the interval of time after which the send method, invoked by a communication object, times out.|
This interface has four read-only properties that provide default timeout values for the open, send, receive, and close methods that can be called on a communication object. Each implementation is responsible for obtaining the default values in whatever manner is appropriate for the implementation. This interface is implemented by ChannelBase, the base implementation for writing custom channels, and the ChannelManagerBase, the base implementation for writing custom channel managers which derive from ChannelFactoryBase and ChannelListenerBase. The interface is also implemented by the Binding class and then inherited from there by CustomBinding and the system-provided bindings, such as BasicHttpBinding.
When you use channels directly, you have the ability to explicitly specify timeouts on a per-channel or per-operation-basis, or on any other custom basis. When using the channel model, timeouts are quite accessible when you want to control them.
When using the service model, on the other hand, you program against services and contracts, and timeouts are more in the background. They are controlled by the infrastructure machinery which flows timeouts from place to place on your behalf. is one mechanism for providing that flow.