StreamUpgradeProvider Class

Definition

Implements a custom upgrade provider, inherited from this abstract base class.

public ref class StreamUpgradeProvider abstract : System::ServiceModel::Channels::CommunicationObject
public abstract class StreamUpgradeProvider : System.ServiceModel.Channels.CommunicationObject
type StreamUpgradeProvider = class
    inherit CommunicationObject
Public MustInherit Class StreamUpgradeProvider
Inherits CommunicationObject
Inheritance
StreamUpgradeProvider
Derived

Remarks

An example of a stream upgrade is to build a compression stream directly on top of the transport stream. To add a security upgrade, you additionally implement a class that derives from StreamSecurityUpgradeProvider. You can implement multiple upgrades, each wrapping the preceding one.

The upgrade process has the following steps:

  1. Implement a class that derives from StreamUpgradeProvider.

  2. Register it. You do this by creating a binding element for it, and registering the provider in a custom binding.

  3. The derived class that you implement creates an instance of StreamUpgradeInitiator, which at run time initiates a request to the other end of its connection to upgrade the channel transport layer.

  4. The derived class that you implement creates an instance of StreamUpgradeAcceptor, which at run time receives the upgrade request from the preceding step and, if possible, accepts the upgrade and returns the upgraded stream to the other side of its connection.

  5. If there are additional upgrade requests, they are processed sequentially, as described in the preceding two steps.

Constructors

StreamUpgradeProvider()

Initializes a new instance of the StreamUpgradeProvider class.

StreamUpgradeProvider(IDefaultCommunicationTimeouts)

Initializes a new instance of the StreamUpgradeProvider class.

Properties

DefaultCloseTimeout

Gets the DefaultCloseTimeout.

DefaultOpenTimeout

Gets the DefaultOpenTimeout.

IsDisposed

Gets a value that indicates whether the communication object has been disposed.

(Inherited from CommunicationObject)
State

Gets a value that indicates the current state of the communication object.

(Inherited from CommunicationObject)
ThisLock

Gets the mutually exclusive lock that protects the class instance during a state transition.

(Inherited from CommunicationObject)

Methods

Abort()

Causes a communication object to transition immediately from its current state into the closing state.

(Inherited from CommunicationObject)
BeginClose(AsyncCallback, Object)

Begins an asynchronous operation to close a communication object.

(Inherited from CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Begins an asynchronous operation to close a communication object with a specified timeout.

(Inherited from CommunicationObject)
BeginOpen(AsyncCallback, Object)

Begins an asynchronous operation to open a communication object.

(Inherited from CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Begins an asynchronous operation to open a communication object within a specified interval of time.

(Inherited from CommunicationObject)
Close()

Causes a communication object to transition from its current state into the closed state.

(Inherited from CommunicationObject)
Close(TimeSpan)

Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(Inherited from CommunicationObject)
CreateUpgradeAcceptor()

Creates an instance of StreamUpgradeAcceptor.

CreateUpgradeInitiator(EndpointAddress, Uri)

Creates an instance of StreamUpgradeInitiator.

EndClose(IAsyncResult)

Completes an asynchronous operation to close a communication object.

(Inherited from CommunicationObject)
EndOpen(IAsyncResult)

Completes an asynchronous operation to open a communication object.

(Inherited from CommunicationObject)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
Fault()

Causes a communication object to transition from its current state into the faulted state.

(Inherited from CommunicationObject)
GetCommunicationObjectType()

Gets the type of communication object.

(Inherited from CommunicationObject)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetProperty<T>()

When implemented in a derived class, gets a property of the current stream that represents an initiator of a stream upgrade.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnAbort()

Inserts processing on a communication object after it transitions to the closing state due to the invocation of a synchronous abort operation.

(Inherited from CommunicationObject)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Inserts processing after a communication object transitions to the closing state due to the invocation of an asynchronous close operation.

(Inherited from CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Inserts processing on a communication object after it transitions to the opening state due to the invocation of an asynchronous open operation.

(Inherited from CommunicationObject)
OnClose(TimeSpan)

Inserts processing on a communication object after it transitions to the closing state due to the invocation of a synchronous close operation.

(Inherited from CommunicationObject)
OnCloseAsync(TimeSpan) (Inherited from CommunicationObject)
OnClosed()

Invoked during the transition of a communication object into the closing state.

(Inherited from CommunicationObject)
OnClosing()

Invoked during the transition of a communication object into the closing state.

(Inherited from CommunicationObject)
OnEndClose(IAsyncResult)

Completes an asynchronous operation on the close of a communication object.

(Inherited from CommunicationObject)
OnEndOpen(IAsyncResult)

Completes an asynchronous operation on the open of a communication object.

(Inherited from CommunicationObject)
OnFaulted()

Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(Inherited from CommunicationObject)
OnOpen(TimeSpan)

Inserts processing on a communication object after it transitions into the opening state which must complete within a specified interval of time.

(Inherited from CommunicationObject)
OnOpenAsync(TimeSpan) (Inherited from CommunicationObject)
OnOpened()

Invoked during the transition of a communication object into the opened state.

(Inherited from CommunicationObject)
OnOpening()

Invoked during the transition of a communication object into the opening state.

(Inherited from CommunicationObject)
Open()

Causes a communication object to transition from the created state into the opened state.

(Inherited from CommunicationObject)
Open(TimeSpan)

Causes a communication object to transition from the created state into the opened state within a specified interval of time.

(Inherited from CommunicationObject)
ThrowIfDisposed()

Throws an exception if the communication object is disposed.

(Inherited from CommunicationObject)
ThrowIfDisposedOrImmutable()

Throws an exception if the communication object the State property is not set to the Created state.

(Inherited from CommunicationObject)
ThrowIfDisposedOrNotOpen()

Throws an exception if the communication object is not in the Opened state.

(Inherited from CommunicationObject)
ToString()

Returns a string that represents the current object.

(Inherited from Object)

Events

Closed

Occurs when a communication object transitions into the closed state.

(Inherited from CommunicationObject)
Closing

Occurs when a communication object transitions into the closing state.

(Inherited from CommunicationObject)
Faulted

Occurs when a communication object transitions into the faulted state.

(Inherited from CommunicationObject)
Opened

Occurs when a communication object transitions into the opened state.

(Inherited from CommunicationObject)
Opening

Occurs when a communication object transitions into the opening state.

(Inherited from CommunicationObject)

Explicit Interface Implementations

IAsyncCommunicationObject.CloseAsync(TimeSpan) (Inherited from CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan) (Inherited from CommunicationObject)

Extension Methods

CloseHelperAsync(ICommunicationObject, TimeSpan)
OpenHelperAsync(ICommunicationObject, TimeSpan)
GetInternalCloseTimeout(CommunicationObject)

Applies to

See also