ClientChannel
Overview
The ClientChannel abstract class serves as a base class for implementing a custom Remoting SDK Transport Channel by providing a common base-implementation of the IClientChannel interface. Though a Transport Channel will typically descend from the ClientChannel class, this is not required, but all Transport Channels have to implement the IClientChannel interface.
Location
- Reference: RemObjects.SDK.dll
- Namespace: RemObjects.SDK
-
Ancestry:
- Component | Channel | ClientChannel .NET Compact Framework, .NET Framework
- Channel | ClientChannel .NET Core, .NET Standard
- Component | Channel | ClientChannel .NET Compact Framework, .NET Framework
constructor protected
Creates a new instance of the ClientChannel class.
This constructor can be called only from a derived class.
constructor
ClientChannel()
init()
Sub New()
AfterReceiveStream (declared in Channel)
This event is triggered by client and server channels directly after a request or response stream has been received and before the stream gets parsed into a message. User code can assign handlers to this event to process, inspect or modify incoming messages, before they get handled by the Remoting SDK framework. The passed Stream is a MemoryStream and may be modified.
If no handlers are assigned to the AfterReceiveStream event, the message will load the data directly from the incoming medium (usually the network stream); assigning event handlers to AfterReceiveStream will induce a slight overhead as the data will first be copied into a local memory buffer for the event handler. This should not have any noticeably effect except for very large messages or on resource-limited systems such as Compact Framework Clients, but if utmost performance is important, take this note into consideration.
event AfterReceiveStream: EventHandler<StreamEventArgs>
delegate EventHandler<StreamEventArgs> AfterReceiveStream()
__event EventHandler<StreamEventArgs>: AfterReceiveStream!
Event AfterReceiveStream As EventHandler<StreamEventArgs>
AsyncDispatch
method AsyncDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult AsyncDispatch(IMessage message, AsyncCallback callback, Object userData)
func AsyncDispatch(_ message: IMessage, _ callback: AsyncCallback, _ userData: Object) -> IClientAsyncResult
Function AsyncDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
BeforeDispatch protected
method BeforeDispatch(message: IMessage)
void BeforeDispatch(IMessage message)
func BeforeDispatch(_ message: IMessage)
Sub BeforeDispatch(message As IMessage)
Parameters:
- message:
BeforeSendStream (declared in Channel)
This event is triggered by client and server channels directly before a request or response stream will be sent over the network. User code can assign handlers to this event to process, inspect or modify incoming messages before they get sent out to the remote system.
The passed Stream is a MemoryStream and may be modified.
event BeforeSendStream: EventHandler<StreamEventArgs>
delegate EventHandler<StreamEventArgs> BeforeSendStream()
__event EventHandler<StreamEventArgs>: BeforeSendStream!
Event BeforeSendStream As EventHandler<StreamEventArgs>
BeginDispatch (IMessage, AsyncCallback, Boolean, Object): IClientAsyncResult protected
method BeginDispatch(message: IMessage; callback: AsyncCallback; disposeChannel: Boolean; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Boolean disposeChannel, Object userData)
func BeginDispatch(_ message: IMessage, _ callback: AsyncCallback, _ disposeChannel: Boolean, _ userData: Object) -> IClientAsyncResult
Function BeginDispatch(message As IMessage, callback As AsyncCallback, disposeChannel As Boolean, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- disposeChannel:
- userData:
BeginDispatch (IMessage, AsyncCallback, Object): IClientAsyncResult
method BeginDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Object userData)
func BeginDispatch(_ message: IMessage, _ callback: AsyncCallback, _ userData: Object) -> IClientAsyncResult
Function BeginDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
BuildTargetUri protected
class method BuildTargetUri(protocol: String; host: String; port: Int32; message: String): Uri
static Uri BuildTargetUri(String protocol, String host, Int32 port, String message)
static func BuildTargetUri(_ protocol: String, _ host: String, _ port: Int32, _ message: String) -> Uri
Shared Function BuildTargetUri(protocol As String, host As String, port As Int32, message As String) As Uri
Parameters:
- protocol:
- host:
- port:
- message:
ChannelMatchingTargetUri (String): IClientChannel
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: String): IClientChannel
static IClientChannel ChannelMatchingTargetUri(String uri)
static func ChannelMatchingTargetUri(_ uri: String) -> IClientChannel
Shared Function ChannelMatchingTargetUri(uri As String) As IClientChannel
Parameters:
- uri: Server Uri
ChannelMatchingTargetUri (Uri): IClientChannel
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: Uri): IClientChannel
static IClientChannel ChannelMatchingTargetUri(Uri uri)
static func ChannelMatchingTargetUri(_ uri: Uri) -> IClientChannel
Shared Function ChannelMatchingTargetUri(uri As Uri) As IClientChannel
Parameters:
- uri: Server Uri
CheckChannelStatus protected
method CheckChannelStatus
void CheckChannelStatus()
func CheckChannelStatus()
Sub CheckChannelStatus()
Clone
method Clone: Object
Object Clone()
func Clone() -> Object
Function Clone() As Object
method CopyProperties(source: Channel)
void CopyProperties(Channel source)
func CopyProperties(_ source: Channel)
Sub CopyProperties(source As Channel)
Parameters:
- source:
CopyProperties (ClientChannel) protected
method CopyProperties(source: ClientChannel)
void CopyProperties(ClientChannel source)
func CopyProperties(_ source: ClientChannel)
Sub CopyProperties(source As ClientChannel)
Parameters:
- source:
Dispatch
The implementation of IClientChannel.Dispatch. This method ensures the transport is not busy before calling IntDispatch and passing the given IMessage. If the transport is busy, a ChannelBusyException is thrown.
method Dispatch(message: IMessage)
void Dispatch(IMessage message)
func Dispatch(_ message: IMessage)
Sub Dispatch(message As IMessage)
Parameters:
- message:
Dispose (declared in Channel) .NET Core, .NET Standard
method Dispose
void Dispose()
func Dispose()
Sub Dispose()
Dispose (Boolean) protected (declared in Channel) .NET Core, .NET Standard
method Dispose(disposing: Boolean)
void Dispose(Boolean disposing)
func Dispose(_ disposing: Boolean)
Sub Dispose(disposing As Boolean)
Parameters:
- disposing:
EndDispatch
method EndDispatch(ar: IAsyncResult): IMessage
IMessage EndDispatch(IAsyncResult ar)
func EndDispatch(_ ar: IAsyncResult) -> IMessage
Function EndDispatch(ar As IAsyncResult) As IMessage
Parameters:
- ar:
HasAfterReceiveStream protected (declared in Channel)
property HasAfterReceiveStream: Boolean read;
Boolean HasAfterReceiveStream { get; }
var HasAfterReceiveStream: Boolean { get{} }
ReadOnly Property HasAfterReceiveStream() As Boolean
HasBeforeSendStream protected (declared in Channel)
property HasBeforeSendStream: Boolean read;
Boolean HasBeforeSendStream { get; }
var HasBeforeSendStream: Boolean { get{} }
ReadOnly Property HasBeforeSendStream() As Boolean
HasOnTransferProgress protected
property HasOnTransferProgress: Boolean read;
Boolean HasOnTransferProgress { get; }
var HasOnTransferProgress: Boolean { get{} }
ReadOnly Property HasOnTransferProgress() As Boolean
IntDispatch protected
method IntDispatch(request: Stream; response: IMessage)
void IntDispatch(Stream request, IMessage response)
func IntDispatch(_ request: Stream, _ response: IMessage)
Sub IntDispatch(request As Stream, response As IMessage)
Parameters:
- request:
- response:
IsBusy
property IsBusy: Boolean read;
Boolean IsBusy { get; }
var IsBusy: Boolean { get{} }
ReadOnly Property IsBusy() As Boolean
OnException
This event is raised if an exception occurs during the execution of a remote request through the channel. The event will be raised both for exceptions originating from the server and for exceptions during communication (such as unavailability of the server). Attach a handler to this event to do custom handling of events without having to reply on explicit try/catch blocks in the calling code.
This event will not be raised for SessionNotFoundExceptions. These will be handled separately by the OnLoginNeeded event.
event OnException: EventHandler<RequestExceptionEventArgs>
delegate EventHandler<RequestExceptionEventArgs> OnException()
__event EventHandler<RequestExceptionEventArgs>: OnException!
Event OnException As EventHandler<RequestExceptionEventArgs>
OnLoginNeeded
This event is raised if an SessionNotFoundException occurs during the execution of a remote request through the channel. The event gives you the opportunity to perform a login on the server (for example by calling a custom Login method, and then retry the call by setting the EventArgs' LoginSuccessful property to true. This way, your client can recover from a timed-out session to automatically logging in again, without the calling code having to consider the handling of SessionNotFoundExceptions manually.
event OnLoginNeeded: EventHandler<LoginNeededEventArgs>
delegate EventHandler<LoginNeededEventArgs> OnLoginNeeded()
__event EventHandler<LoginNeededEventArgs>: OnLoginNeeded!
Event OnLoginNeeded As EventHandler<LoginNeededEventArgs>
OnTransferEnd
This event is triggered by the client channel after a transfer is completed (either the sending of a request or the receiving of a response).
event OnTransferEnd: EventHandler<TransferEndEventArgs>
delegate EventHandler<TransferEndEventArgs> OnTransferEnd()
__event EventHandler<TransferEndEventArgs>: OnTransferEnd!
Event OnTransferEnd As EventHandler<TransferEndEventArgs>
OnTransferProgress
This event is triggered by the client channel during a transfer (either the sending of a request or the receiving of a response) whenever a new block of data has been sent or received.
event OnTransferProgress: EventHandler<TransferProgressEventArgs>
delegate EventHandler<TransferProgressEventArgs> OnTransferProgress()
__event EventHandler<TransferProgressEventArgs>: OnTransferProgress!
Event OnTransferProgress As EventHandler<TransferProgressEventArgs>
OnTransferStart
This event is triggered by the client channel when a transfer (either the sending of a request or the receiving of a response) is about to be started.
event OnTransferStart: EventHandler<TransferStartEventArgs>
delegate EventHandler<TransferStartEventArgs> OnTransferStart()
__event EventHandler<TransferStartEventArgs>: OnTransferStart!
Event OnTransferStart As EventHandler<TransferStartEventArgs>
TargetUri
property TargetUri: Uri read write;
Uri TargetUri { get; set; }
var TargetUri: Uri { get{} set{} }
Property TargetUri() As Uri
TargetUrl
property TargetUrl: String read write;
String TargetUrl { get; set; }
var TargetUrl: String { get{} set{} }
Property TargetUrl() As String
TriggerAfterReceiveStream protected (declared in Channel)
method TriggerAfterReceiveStream(var stream: Stream)
void TriggerAfterReceiveStream(ref Stream stream)
func TriggerAfterReceiveStream(_ stream: inout Stream)
Sub TriggerAfterReceiveStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerBeforeSendStream protected (declared in Channel)
method TriggerBeforeSendStream(var stream: Stream)
void TriggerBeforeSendStream(ref Stream stream)
func TriggerBeforeSendStream(_ stream: inout Stream)
Sub TriggerBeforeSendStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerOnException protected
method TriggerOnException(exception: Exception; out handled: Boolean)
void TriggerOnException(Exception exception, out Boolean handled)
func TriggerOnException(_ exception: Exception, _ handled: inout Boolean)
Sub TriggerOnException(exception As Exception, <OutAttribute> ByRef handled As Boolean)
Parameters:
- exception:
- handled:
TriggerOnLoginNeeded protected
method TriggerOnLoginNeeded(exception: Exception; out loginSuccessful: Boolean)
void TriggerOnLoginNeeded(Exception exception, out Boolean loginSuccessful)
func TriggerOnLoginNeeded(_ exception: Exception, _ loginSuccessful: inout Boolean)
Sub TriggerOnLoginNeeded(exception As Exception, <OutAttribute> ByRef loginSuccessful As Boolean)
Parameters:
- exception:
- loginSuccessful:
TriggerOnTransferEnd protected
method TriggerOnTransferEnd(direction: TransferDirection)
void TriggerOnTransferEnd(TransferDirection direction)
func TriggerOnTransferEnd(_ direction: TransferDirection)
Sub TriggerOnTransferEnd(direction As TransferDirection)
Parameters:
- direction:
TriggerOnTransferProgress protected
method TriggerOnTransferProgress(direction: TransferDirection; current: Int64)
void TriggerOnTransferProgress(TransferDirection direction, Int64 current)
func TriggerOnTransferProgress(_ direction: TransferDirection, _ current: Int64)
Sub TriggerOnTransferProgress(direction As TransferDirection, current As Int64)
Parameters:
- direction:
- current:
TriggerOnTransferStart protected
method TriggerOnTransferStart(direction: TransferDirection; total: Int64)
void TriggerOnTransferStart(TransferDirection direction, Int64 total)
func TriggerOnTransferStart(_ direction: TransferDirection, _ total: Int64)
Sub TriggerOnTransferStart(direction As TransferDirection, total As Int64)
Parameters:
- direction:
- total:
HasAfterReceiveStream protected (declared in Channel)
property HasAfterReceiveStream: Boolean read;
Boolean HasAfterReceiveStream { get; }
var HasAfterReceiveStream: Boolean { get{} }
ReadOnly Property HasAfterReceiveStream() As Boolean
HasBeforeSendStream protected (declared in Channel)
property HasBeforeSendStream: Boolean read;
Boolean HasBeforeSendStream { get; }
var HasBeforeSendStream: Boolean { get{} }
ReadOnly Property HasBeforeSendStream() As Boolean
HasOnTransferProgress protected
property HasOnTransferProgress: Boolean read;
Boolean HasOnTransferProgress { get; }
var HasOnTransferProgress: Boolean { get{} }
ReadOnly Property HasOnTransferProgress() As Boolean
IsBusy
property IsBusy: Boolean read;
Boolean IsBusy { get; }
var IsBusy: Boolean { get{} }
ReadOnly Property IsBusy() As Boolean
TargetUri
property TargetUri: Uri read write;
Uri TargetUri { get; set; }
var TargetUri: Uri { get{} set{} }
Property TargetUri() As Uri
TargetUrl
property TargetUrl: String read write;
String TargetUrl { get; set; }
var TargetUrl: String { get{} set{} }
Property TargetUrl() As String
BuildTargetUri protected
class method BuildTargetUri(protocol: String; host: String; port: Int32; message: String): Uri
static Uri BuildTargetUri(String protocol, String host, Int32 port, String message)
static func BuildTargetUri(_ protocol: String, _ host: String, _ port: Int32, _ message: String) -> Uri
Shared Function BuildTargetUri(protocol As String, host As String, port As Int32, message As String) As Uri
Parameters:
- protocol:
- host:
- port:
- message:
ChannelMatchingTargetUri (String): IClientChannel
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: String): IClientChannel
static IClientChannel ChannelMatchingTargetUri(String uri)
static func ChannelMatchingTargetUri(_ uri: String) -> IClientChannel
Shared Function ChannelMatchingTargetUri(uri As String) As IClientChannel
Parameters:
- uri: Server Uri
ChannelMatchingTargetUri (Uri): IClientChannel
Creates a client channel instance with type, target host and target port matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class method ChannelMatchingTargetUri(uri: Uri): IClientChannel
static IClientChannel ChannelMatchingTargetUri(Uri uri)
static func ChannelMatchingTargetUri(_ uri: Uri) -> IClientChannel
Shared Function ChannelMatchingTargetUri(uri As Uri) As IClientChannel
Parameters:
- uri: Server Uri
constructor protected
Creates a new instance of the ClientChannel class.
This constructor can be called only from a derived class.
constructor
ClientChannel()
init()
Sub New()
AsyncDispatch
method AsyncDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult AsyncDispatch(IMessage message, AsyncCallback callback, Object userData)
func AsyncDispatch(_ message: IMessage, _ callback: AsyncCallback, _ userData: Object) -> IClientAsyncResult
Function AsyncDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
BeforeDispatch protected
method BeforeDispatch(message: IMessage)
void BeforeDispatch(IMessage message)
func BeforeDispatch(_ message: IMessage)
Sub BeforeDispatch(message As IMessage)
Parameters:
- message:
BeginDispatch (IMessage, AsyncCallback, Boolean, Object): IClientAsyncResult protected
method BeginDispatch(message: IMessage; callback: AsyncCallback; disposeChannel: Boolean; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Boolean disposeChannel, Object userData)
func BeginDispatch(_ message: IMessage, _ callback: AsyncCallback, _ disposeChannel: Boolean, _ userData: Object) -> IClientAsyncResult
Function BeginDispatch(message As IMessage, callback As AsyncCallback, disposeChannel As Boolean, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- disposeChannel:
- userData:
BeginDispatch (IMessage, AsyncCallback, Object): IClientAsyncResult
method BeginDispatch(message: IMessage; callback: AsyncCallback; userData: Object): IClientAsyncResult
IClientAsyncResult BeginDispatch(IMessage message, AsyncCallback callback, Object userData)
func BeginDispatch(_ message: IMessage, _ callback: AsyncCallback, _ userData: Object) -> IClientAsyncResult
Function BeginDispatch(message As IMessage, callback As AsyncCallback, userData As Object) As IClientAsyncResult
Parameters:
- message:
- callback:
- userData:
CheckChannelStatus protected
method CheckChannelStatus
void CheckChannelStatus()
func CheckChannelStatus()
Sub CheckChannelStatus()
Clone
method Clone: Object
Object Clone()
func Clone() -> Object
Function Clone() As Object
method CopyProperties(source: Channel)
void CopyProperties(Channel source)
func CopyProperties(_ source: Channel)
Sub CopyProperties(source As Channel)
Parameters:
- source:
CopyProperties (ClientChannel) protected
method CopyProperties(source: ClientChannel)
void CopyProperties(ClientChannel source)
func CopyProperties(_ source: ClientChannel)
Sub CopyProperties(source As ClientChannel)
Parameters:
- source:
Dispatch
The implementation of IClientChannel.Dispatch. This method ensures the transport is not busy before calling IntDispatch and passing the given IMessage. If the transport is busy, a ChannelBusyException is thrown.
method Dispatch(message: IMessage)
void Dispatch(IMessage message)
func Dispatch(_ message: IMessage)
Sub Dispatch(message As IMessage)
Parameters:
- message:
Dispose (declared in Channel) .NET Core, .NET Standard
method Dispose
void Dispose()
func Dispose()
Sub Dispose()
Dispose (Boolean) protected (declared in Channel) .NET Core, .NET Standard
method Dispose(disposing: Boolean)
void Dispose(Boolean disposing)
func Dispose(_ disposing: Boolean)
Sub Dispose(disposing As Boolean)
Parameters:
- disposing:
EndDispatch
method EndDispatch(ar: IAsyncResult): IMessage
IMessage EndDispatch(IAsyncResult ar)
func EndDispatch(_ ar: IAsyncResult) -> IMessage
Function EndDispatch(ar As IAsyncResult) As IMessage
Parameters:
- ar:
IntDispatch protected
method IntDispatch(request: Stream; response: IMessage)
void IntDispatch(Stream request, IMessage response)
func IntDispatch(_ request: Stream, _ response: IMessage)
Sub IntDispatch(request As Stream, response As IMessage)
Parameters:
- request:
- response:
TriggerAfterReceiveStream protected (declared in Channel)
method TriggerAfterReceiveStream(var stream: Stream)
void TriggerAfterReceiveStream(ref Stream stream)
func TriggerAfterReceiveStream(_ stream: inout Stream)
Sub TriggerAfterReceiveStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerBeforeSendStream protected (declared in Channel)
method TriggerBeforeSendStream(var stream: Stream)
void TriggerBeforeSendStream(ref Stream stream)
func TriggerBeforeSendStream(_ stream: inout Stream)
Sub TriggerBeforeSendStream(ByRef stream As Stream)
Parameters:
- stream:
TriggerOnException protected
method TriggerOnException(exception: Exception; out handled: Boolean)
void TriggerOnException(Exception exception, out Boolean handled)
func TriggerOnException(_ exception: Exception, _ handled: inout Boolean)
Sub TriggerOnException(exception As Exception, <OutAttribute> ByRef handled As Boolean)
Parameters:
- exception:
- handled:
TriggerOnLoginNeeded protected
method TriggerOnLoginNeeded(exception: Exception; out loginSuccessful: Boolean)
void TriggerOnLoginNeeded(Exception exception, out Boolean loginSuccessful)
func TriggerOnLoginNeeded(_ exception: Exception, _ loginSuccessful: inout Boolean)
Sub TriggerOnLoginNeeded(exception As Exception, <OutAttribute> ByRef loginSuccessful As Boolean)
Parameters:
- exception:
- loginSuccessful:
TriggerOnTransferEnd protected
method TriggerOnTransferEnd(direction: TransferDirection)
void TriggerOnTransferEnd(TransferDirection direction)
func TriggerOnTransferEnd(_ direction: TransferDirection)
Sub TriggerOnTransferEnd(direction As TransferDirection)
Parameters:
- direction:
TriggerOnTransferProgress protected
method TriggerOnTransferProgress(direction: TransferDirection; current: Int64)
void TriggerOnTransferProgress(TransferDirection direction, Int64 current)
func TriggerOnTransferProgress(_ direction: TransferDirection, _ current: Int64)
Sub TriggerOnTransferProgress(direction As TransferDirection, current As Int64)
Parameters:
- direction:
- current:
TriggerOnTransferStart protected
method TriggerOnTransferStart(direction: TransferDirection; total: Int64)
void TriggerOnTransferStart(TransferDirection direction, Int64 total)
func TriggerOnTransferStart(_ direction: TransferDirection, _ total: Int64)
Sub TriggerOnTransferStart(direction As TransferDirection, total As Int64)
Parameters:
- direction:
- total:
AfterReceiveStream (declared in Channel)
This event is triggered by client and server channels directly after a request or response stream has been received and before the stream gets parsed into a message. User code can assign handlers to this event to process, inspect or modify incoming messages, before they get handled by the Remoting SDK framework. The passed Stream is a MemoryStream and may be modified.
If no handlers are assigned to the AfterReceiveStream event, the message will load the data directly from the incoming medium (usually the network stream); assigning event handlers to AfterReceiveStream will induce a slight overhead as the data will first be copied into a local memory buffer for the event handler. This should not have any noticeably effect except for very large messages or on resource-limited systems such as Compact Framework Clients, but if utmost performance is important, take this note into consideration.
event AfterReceiveStream: EventHandler<StreamEventArgs>
delegate EventHandler<StreamEventArgs> AfterReceiveStream()
__event EventHandler<StreamEventArgs>: AfterReceiveStream!
Event AfterReceiveStream As EventHandler<StreamEventArgs>
BeforeSendStream (declared in Channel)
This event is triggered by client and server channels directly before a request or response stream will be sent over the network. User code can assign handlers to this event to process, inspect or modify incoming messages before they get sent out to the remote system.
The passed Stream is a MemoryStream and may be modified.
event BeforeSendStream: EventHandler<StreamEventArgs>
delegate EventHandler<StreamEventArgs> BeforeSendStream()
__event EventHandler<StreamEventArgs>: BeforeSendStream!
Event BeforeSendStream As EventHandler<StreamEventArgs>
OnException
This event is raised if an exception occurs during the execution of a remote request through the channel. The event will be raised both for exceptions originating from the server and for exceptions during communication (such as unavailability of the server). Attach a handler to this event to do custom handling of events without having to reply on explicit try/catch blocks in the calling code.
This event will not be raised for SessionNotFoundExceptions. These will be handled separately by the OnLoginNeeded event.
event OnException: EventHandler<RequestExceptionEventArgs>
delegate EventHandler<RequestExceptionEventArgs> OnException()
__event EventHandler<RequestExceptionEventArgs>: OnException!
Event OnException As EventHandler<RequestExceptionEventArgs>
OnLoginNeeded
This event is raised if an SessionNotFoundException occurs during the execution of a remote request through the channel. The event gives you the opportunity to perform a login on the server (for example by calling a custom Login method, and then retry the call by setting the EventArgs' LoginSuccessful property to true. This way, your client can recover from a timed-out session to automatically logging in again, without the calling code having to consider the handling of SessionNotFoundExceptions manually.
event OnLoginNeeded: EventHandler<LoginNeededEventArgs>
delegate EventHandler<LoginNeededEventArgs> OnLoginNeeded()
__event EventHandler<LoginNeededEventArgs>: OnLoginNeeded!
Event OnLoginNeeded As EventHandler<LoginNeededEventArgs>
OnTransferEnd
This event is triggered by the client channel after a transfer is completed (either the sending of a request or the receiving of a response).
event OnTransferEnd: EventHandler<TransferEndEventArgs>
delegate EventHandler<TransferEndEventArgs> OnTransferEnd()
__event EventHandler<TransferEndEventArgs>: OnTransferEnd!
Event OnTransferEnd As EventHandler<TransferEndEventArgs>
OnTransferProgress
This event is triggered by the client channel during a transfer (either the sending of a request or the receiving of a response) whenever a new block of data has been sent or received.
event OnTransferProgress: EventHandler<TransferProgressEventArgs>
delegate EventHandler<TransferProgressEventArgs> OnTransferProgress()
__event EventHandler<TransferProgressEventArgs>: OnTransferProgress!
Event OnTransferProgress As EventHandler<TransferProgressEventArgs>
OnTransferStart
This event is triggered by the client channel when a transfer (either the sending of a request or the receiving of a response) is about to be started.
event OnTransferStart: EventHandler<TransferStartEventArgs>
delegate EventHandler<TransferStartEventArgs> OnTransferStart()
__event EventHandler<TransferStartEventArgs>: OnTransferStart!
Event OnTransferStart As EventHandler<TransferStartEventArgs>