<?xml version="1.0" encoding="utf-8"?> <Type Name="IReplyChannel" FullName="System.ServiceModel.Channels.IReplyChannel"> <TypeSignature Language="C#" Value="public interface IReplyChannel : System.ServiceModel.Channels.IChannel" /> <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IReplyChannel implements class System.ServiceModel.Channels.IChannel, class System.ServiceModel.ICommunicationObject" /> <AssemblyInfo> <AssemblyName>System.ServiceModel</AssemblyName> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <Interfaces> <Interface> <InterfaceName>System.ServiceModel.Channels.IChannel</InterfaceName> </Interface> </Interfaces> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.ServiceModel.Channels.IReplyChannel" /> interface includes synchronous and asynchronous variants of a <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> method return an <see cref="T:System.ServiceModel.Channels.RequestContext" /> that can be used to construct replies to received requests. </para> <para>The contract includes synchronous and asynchronous variants of receive, try-to-receive and wait-for-a-message functionality.</para> <para>An <see cref="T:System.ServiceModel.Channels.IReplyChannel" /> is not necessarily bound to a single sender. Other channels and channel interfaces provide correlation between the sender and the reply channel, but the base contract makes no such restriction. </para> <para>The pull model is used with an <see cref="T:System.ServiceModel.Channels.IReplyChannel" /> to receive messages. This model consists of calling <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> (or one of its variants) and then waiting for a message to arrive. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Defines the interface that a channel must implement to be on the receiving side of a request-reply communication between messaging endpoints. </para> </summary> </Docs> <Members> <Member MemberName="BeginReceiveRequest"> <MemberSignature Language="C#" Value="public IAsyncResult BeginReceiveRequest (AsyncCallback callback, object state);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginReceiveRequest(class System.AsyncCallback callback, object state) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.IAsyncResult</ReturnType> </ReturnValue> <Parameters> <Parameter Name="callback" Type="System.AsyncCallback" /> <Parameter Name="state" Type="System.Object" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginReceiveRequest(System.AsyncCallback,System.Object)" /> method implements the standard pattern for invoking <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> asynchronously. The default timeout is 1 minute. If a receive timeout is set on the binding used to configure the connection, then that value is used. Use <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginReceiveRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> if you want to specify an explicit timeout with the call that overrides these other values.</para> <para>If the request message received is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> is thrown. The maximum message size is set by the <see cref="P:System.ServiceModel.Channels.TransportBindingElement.MaxReceivedMessageSize" /> property. The default value is 65536 bytes. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Begins an asynchronous operation to receive an available request with a default timeout.</para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous reception of the request. </para> </returns> <param name="callback"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the asynchronous receive that a request operation completes.</param> <param name="state"> <attribution license="cc4" from="Microsoft" modified="false" />An object, specified by the application, that contains state information associated with the asynchronous receive of a request operation.</param> </Docs> </Member> <Member MemberName="BeginReceiveRequest"> <MemberSignature Language="C#" Value="public IAsyncResult BeginReceiveRequest (TimeSpan timeout, AsyncCallback callback, object state);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginReceiveRequest(valuetype System.TimeSpan timeout, class System.AsyncCallback callback, object state) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.IAsyncResult</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> <Parameter Name="callback" Type="System.AsyncCallback" /> <Parameter Name="state" Type="System.Object" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginReceiveRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> method implements the standard pattern for invoking <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest(System.TimeSpan)" />asynchronously. The timeout set on this method overrides a receive timeout set on the binding that is used to configure the connection.</para> <para>If the request message received is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> is thrown. The maximum message size is set by the <see cref="P:System.ServiceModel.Channels.TransportBindingElement.MaxReceivedMessageSize" /> property. The default value is 65536 bytes. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Begins an asynchronous operation to receive an available request with a specified timeout.</para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous reception of the request. </para> </returns> <param name="timeout"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Timespan" /> that specifies the interval of time to wait for the reception of an available request.</param> <param name="callback"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the asynchronous receive that a request operation completes.</param> <param name="state"> <attribution license="cc4" from="Microsoft" modified="false" />An object, specified by the application, that contains state information associated with the asynchronous receive of a request operation.</param> </Docs> </Member> <Member MemberName="BeginTryReceiveRequest"> <MemberSignature Language="C#" Value="public IAsyncResult BeginTryReceiveRequest (TimeSpan timeout, AsyncCallback callback, object state);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginTryReceiveRequest(valuetype System.TimeSpan timeout, class System.AsyncCallback callback, object state) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.IAsyncResult</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> <Parameter Name="callback" Type="System.AsyncCallback" /> <Parameter Name="state" Type="System.Object" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Use the asynchronous <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginTryReceiveRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> method when you need the application processing to continue without waiting. Use one of the synchronous <see cref="M:System.ServiceModel.Channels.IReplyChannel.TryReceiveRequest(System.TimeSpan,System.ServiceModel.Channels.RequestContext@)" /> methods when it is acceptable for the current thread to be blocked while it replies to the request message or until the timeout interval is exceeded.</para> <para>This method receives notification, through a callback, of the identity of the event handler for the operation. The operation is not complete until either a message becomes available in the channel or the time out occurs.</para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Begins an asynchronous operation to receive a request message that has a specified time out and state object associated with it. </para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous receive request operation.</para> </returns> <param name="timeout"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Timespan" /> that specifies how long the receive request operation has to complete before timing out and returning false.</param> <param name="callback"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the asynchronous receive that a request operation completes.</param> <param name="state"> <attribution license="cc4" from="Microsoft" modified="false" />An object, specified by the application, that contains state information associated with the asynchronous receive of a request operation.</param> </Docs> </Member> <Member MemberName="BeginWaitForRequest"> <MemberSignature Language="C#" Value="public IAsyncResult BeginWaitForRequest (TimeSpan timeout, AsyncCallback callback, object state);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginWaitForRequest(valuetype System.TimeSpan timeout, class System.AsyncCallback callback, object state) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.IAsyncResult</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> <Parameter Name="callback" Type="System.AsyncCallback" /> <Parameter Name="state" Type="System.Object" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Use the synchronous <see cref="M:System.ServiceModel.Channels.IReplyChannel.WaitForRequest(System.TimeSpan)" /> method when it is acceptable for the current thread to be blocked while it waits for a request message to arrive in the queue. The thread is blocked up to the specified <paramref name="timeout" />.</para> <para>This method receives notification, through a callback, of the identity of the event handler for the operation. The operation is not complete until either a request message becomes available in the channel or the time out occurs.</para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Begins an asynchronous request operation that has a specified time out and state object associated with it. </para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous operation to wait for a request message to arrive.</para> </returns> <param name="timeout"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Timespan" /> that specifies the interval of time to wait for the reception of an available request.</param> <param name="callback"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the asynchronous receive that a request operation completes.</param> <param name="state"> <attribution license="cc4" from="Microsoft" modified="false" />An object, specified by the application, that contains state information associated with the asynchronous receive of a request operation.</param> </Docs> </Member> <Member MemberName="EndReceiveRequest"> <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.RequestContext EndReceiveRequest (IAsyncResult result);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.RequestContext EndReceiveRequest(class System.IAsyncResult result) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.ServiceModel.Channels.RequestContext</ReturnType> </ReturnValue> <Parameters> <Parameter Name="result" Type="System.IAsyncResult" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>If the request message received is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> is thrown. The maximum message size is set by the <see cref="P:System.ServiceModel.Channels.TransportBindingElement.MaxReceivedMessageSize" /> property. The default value is 65536 bytes. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Completes an asynchronous operation to receive an available request. </para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.ServiceModel.Channels.RequestContext" /> used to construct a reply to the request. </para> </returns> <param name="result"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IAsyncResult" /> returned by a call to the <see cref="M:System.ServiceModel.Channels.IInputChannel.BeginReceive" /> method.</param> </Docs> </Member> <Member MemberName="EndTryReceiveRequest"> <MemberSignature Language="C#" Value="public bool EndTryReceiveRequest (IAsyncResult result, out System.ServiceModel.Channels.RequestContext context);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool EndTryReceiveRequest(class System.IAsyncResult result, class System.ServiceModel.Channels.RequestContext context) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.Boolean</ReturnType> </ReturnValue> <Parameters> <Parameter Name="result" Type="System.IAsyncResult" /> <Parameter Name="context" Type="System.ServiceModel.Channels.RequestContext&" RefType="out" /> </Parameters> <Docs> <param name="result">To be added.</param> <param name="context">To be added.</param> <summary>To be added.</summary> <returns>To be added.</returns> <remarks>To be added.</remarks> </Docs> </Member> <Member MemberName="EndWaitForRequest"> <MemberSignature Language="C#" Value="public bool EndWaitForRequest (IAsyncResult result);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool EndWaitForRequest(class System.IAsyncResult result) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.Boolean</ReturnType> </ReturnValue> <Parameters> <Parameter Name="result" Type="System.IAsyncResult" /> </Parameters> <Docs> <remarks>To be added.</remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Completes the specified asynchronous wait-for-a-request message operation.</para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>true if a request is received before the specified interval of time elapses; otherwise false.</para> </returns> <param name="result"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IAsyncResult" /> that identifies the <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginWaitForRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> operation to finish, and from which to retrieve an end result.</param> </Docs> </Member> <Member MemberName="LocalAddress"> <MemberSignature Language="C#" Value="public System.ServiceModel.EndpointAddress LocalAddress { get; }" /> <MemberSignature Language="ILAsm" Value=".property instance class System.ServiceModel.EndpointAddress LocalAddress" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.ServiceModel.EndpointAddress</ReturnType> </ReturnValue> <Docs> <value>To be added.</value> <remarks>To be added.</remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Gets the address on which this reply channel receives messages.</para> </summary> </Docs> </Member> <Member MemberName="ReceiveRequest"> <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.RequestContext ReceiveRequest ();" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.RequestContext ReceiveRequest() cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.ServiceModel.Channels.RequestContext</ReturnType> </ReturnValue> <Parameters /> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para> <see cref="T:System.ServiceModel.Channels.RequestContext" /> encapsulates the request message and a mechanism for replying to that message. </para> <para> <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> can be called multiple times or concurrently. Only one <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> call completes per request received. </para> <para>If the request message received is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> is thrown. The maximum message size is set by the <see cref="P:System.ServiceModel.Channels.TransportBindingElement.MaxReceivedMessageSize" /> property. The default value is 65536 bytes. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Returns the context of the request received, if one is available. If a context is not available, waits until there is one available. </para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.ServiceModel.Channels.RequestContext" /> used to construct replies. </para> </returns> </Docs> </Member> <Member MemberName="ReceiveRequest"> <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.RequestContext ReceiveRequest (TimeSpan timeout);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.RequestContext ReceiveRequest(valuetype System.TimeSpan timeout) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.ServiceModel.Channels.RequestContext</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para> <see cref="T:System.ServiceModel.Channels.RequestContext" /> encapsulates the request message and a mechanism for replying to that message. </para> <para> <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> can be called multiple times or concurrently. Only one <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> call completes per request received. </para> <para>If the request message received is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> is thrown. The maximum message size is set by the <see cref="P:System.ServiceModel.Channels.TransportBindingElement.MaxReceivedMessageSize" /> property. The default value is 65536 bytes. </para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Returns the context of the request received, if one is available. If a context is not available, waits until there is one available. </para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>The <see cref="T:System.ServiceModel.Channels.RequestContext" /> used to construct replies. </para> </returns> <param name="timeout"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.TimeSpan" /> that specifies how long the receive of a request operation has to complete before timing out and returning false.</param> </Docs> </Member> <Member MemberName="TryReceiveRequest"> <MemberSignature Language="C#" Value="public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool TryReceiveRequest(valuetype System.TimeSpan timeout, class System.ServiceModel.Channels.RequestContext context) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.Boolean</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> <Parameter Name="context" Type="System.ServiceModel.Channels.RequestContext&" RefType="out" /> </Parameters> <Docs> <param name="timeout">To be added.</param> <param name="context">To be added.</param> <summary>To be added.</summary> <returns>To be added.</returns> <remarks>To be added.</remarks> </Docs> </Member> <Member MemberName="WaitForRequest"> <MemberSignature Language="C#" Value="public bool WaitForRequest (TimeSpan timeout);" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool WaitForRequest(valuetype System.TimeSpan timeout) cil managed" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>4.0.0.0</AssemblyVersion> </AssemblyInfo> <ReturnValue> <ReturnType>System.Boolean</ReturnType> </ReturnValue> <Parameters> <Parameter Name="timeout" Type="System.TimeSpan" /> </Parameters> <Docs> <remarks> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Calling <see cref="M:System.ServiceModel.Channels.IReplyChannel.WaitForRequest(System.TimeSpan)" /> does not result in a request message being received or processed in any way.</para> <para>The <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginWaitForRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> method exists primarily for transacted scenarios where the user wants to receive the message using a transaction. When using just <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> normally for this, the user must create the transaction, and then call <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> and hope the message arrives before the transaction times out, which may not be possible.</para> <para>Instead, the user can call <see cref="M:System.ServiceModel.Channels.IReplyChannel.WaitForRequest(System.TimeSpan)" /> and specify the time out (even infinite), then when a message arrives they can open the transaction, call <see cref="M:System.ServiceModel.Channels.IReplyChannel.ReceiveRequest" /> and be confident that they can get the message back before the transaction expires.</para> <para>Use <see cref="M:System.ServiceModel.Channels.IReplyChannel.WaitForRequest(System.TimeSpan)" /> when it is acceptable for the current thread to be blocked while it waits for a message to arrive in the queue. The thread is blocked up to the specified <paramref name="timeout" />. If you need the application processing to continue without waiting, use the asynchronous <see cref="M:System.ServiceModel.Channels.IReplyChannel.BeginWaitForRequest(System.TimeSpan,System.AsyncCallback,System.Object)" /> method.</para> </remarks> <summary> <attribution license="cc4" from="Microsoft" modified="false" /> <para>Returns a value that indicates whether a request message is received before a specified interval of time elapses.</para> </summary> <returns> <attribution license="cc4" from="Microsoft" modified="false" /> <para>true if a request is received before the specified interval of time elapses; otherwise false.</para> </returns> <param name="timeout"> <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Timespan" /> that specifies how long a request operation has to complete before timing out and returning false.</param> </Docs> </Member> </Members> </Type>