﻿<?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&amp;" 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&amp;" 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>