<?xml version="1.0" encoding="utf-8"?>
<Type Name="IRequestChannel" FullName="System.ServiceModel.Channels.IRequestChannel">
  <TypeSignature Language="C#" Value="public interface IRequestChannel : System.ServiceModel.Channels.IChannel" />
  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IRequestChannel 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.IRequestChannel" /> defines synchronous and asynchronous variants of a <see cref="M:System.ServiceModel.Channels.IRequestChannel.Request(System.ServiceModel.Message)" /> method that returns a response message. It also provides a <see cref="P:System.ServiceModel.Channels.IRequestChannel.RemoteAddress" /> and <see cref="P:System.ServiceModel.Channels.IRequestChannel.Via" /> properties to retrieve the endpoint address and URI to which the request message is sent.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Defines the contract that a channel must implement to be on the requesting side of a request-reply communication between messaging endpoints. </para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="BeginRequest">
      <MemberSignature Language="C#" Value="public IAsyncResult BeginRequest (System.ServiceModel.Channels.Message message, AsyncCallback callback, object state);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginRequest(class System.ServiceModel.Channels.Message message, 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="message" Type="System.ServiceModel.Channels.Message" />
        <Parameter Name="callback" Type="System.AsyncCallback" />
        <Parameter Name="state" Type="System.Object" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the request message 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 transmit a request message to the reply side of a request-reply message exchange. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous message transmission. </para>
        </returns>
        <param name="message">
          <attribution license="cc4" from="Microsoft" modified="false" />The request <see cref="T:System.ServiceModel.Channels.Message" /> to be transmitted.</param>
        <param name="callback">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the completion of the asynchronous operation transmitting a request message.</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 operation transmitting a request message.</param>
      </Docs>
    </Member>
    <Member MemberName="BeginRequest">
      <MemberSignature Language="C#" Value="public IAsyncResult BeginRequest (System.ServiceModel.Channels.Message message, TimeSpan timeout, AsyncCallback callback, object state);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginRequest(class System.ServiceModel.Channels.Message message, 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="message" Type="System.ServiceModel.Channels.Message" />
        <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>If the request message is larger that the maximum message size allowed by the binding being used, a <see cref="T:System.ServiceModel.QuotaExceededException" /> should be 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>
          <para>If a <paramref name="timeout" /> is passed while calling the function then that value is used. If the <see cref="P:System.ServiceModel.Channels.Binding.SendTimeout" /> is set on the binding, then the value on the binding is used if no <paramref name="timeout" /> is specified while calling the function.</para>
          <para>The <see cref="P:System.ServiceModel.Channels.ChannelBase.DefaultSendTimeout" /> is used if no timeout is specified on either the binding or while calling the function. This default value is 1 minute.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Begins an asynchronous operation to transmit a request message to the reply side of a request-reply message exchange within a specified interval of time.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.IAsyncResult" /> that references the asynchronous message transmission. </para>
        </returns>
        <param name="message">
          <attribution license="cc4" from="Microsoft" modified="false" />The request <see cref="T:System.ServiceModel.Channels.Message" /> to be transmitted.</param>
        <param name="timeout">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.TimeSpan" /> that specifies the interval of time within which a response must be received. (For defaults, see the Remarks section.)</param>
        <param name="callback">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate that receives the notification of the completion of the asynchronous operation transmitting a request message.</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 operation transmitting a request message.</param>
      </Docs>
    </Member>
    <Member MemberName="EndRequest">
      <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.Message EndRequest (IAsyncResult result);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.Message EndRequest(class System.IAsyncResult result) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.ServiceModel.Channels.Message</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="result" Type="System.IAsyncResult" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the request message 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 return a message-based response to a transmitted request. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.ServiceModel.Channels.Message" /> received in response 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="Overload:System.ServiceModel.Channels.IInputChannel.BeginReceive" /> method. </param>
      </Docs>
    </Member>
    <Member MemberName="RemoteAddress">
      <MemberSignature Language="C#" Value="public System.ServiceModel.EndpointAddress RemoteAddress { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class System.ServiceModel.EndpointAddress RemoteAddress" />
      <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>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.ServiceModel.EndpointAddress" /> serves as both the ultimate destination and the physical address if a <see cref="P:System.ServiceModel.Channels.IRequestChannel.Via" /> is not specified. If the <see cref="P:System.ServiceModel.Channels.IRequestChannel.Via" /> is specified, then that is the actual physical address to which the message is sent and through which the message must go to arrive at its destination.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the remote address to which the request channel sends messages. </para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Request">
      <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.Message Request(class System.ServiceModel.Channels.Message message) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.ServiceModel.Channels.Message</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="message" Type="System.ServiceModel.Channels.Message" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Implementations of <see cref="T:System.ServiceModel.Channels.IRequestChannel" /> ensure that the response message is correlated with the request message. </para>
          <para>Generally, if an implementation of <see cref="T:System.ServiceModel.Channels.IRequestChannel" /> receives a message that is not correlated to an outstanding request, it is dropped. </para>
          <para>The <see cref="Overload:System.ServiceModel.Channels.IRequestChannel.Request" /> method can be called concurrently across multiple threads. </para>
          <para>Passing the message into the request channel causes the message to be accessed. After you call <see cref="Overload:System.ServiceModel.Channels.IRequestChannel.Request" />, you can no longer inspect the message or call <see cref="M:System.ServiceModel.Channels.Message.Close" /> on the message. </para>
          <para>If the request message 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>Sends a message-based request and returns the correlated message-based response. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.ServiceModel.Channels.Message" /> received in response to the request. </para>
        </returns>
        <param name="message">
          <attribution license="cc4" from="Microsoft" modified="false" />The request <see cref="T:System.ServiceModel.Channels.Message" /> to be transmitted.</param>
      </Docs>
    </Member>
    <Member MemberName="Request">
      <MemberSignature Language="C#" Value="public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message, TimeSpan timeout);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.Message Request(class System.ServiceModel.Channels.Message message, valuetype System.TimeSpan timeout) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.ServiceModel.Channels.Message</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="message" Type="System.ServiceModel.Channels.Message" />
        <Parameter Name="timeout" Type="System.TimeSpan" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Implementations of <see cref="T:System.ServiceModel.Channels.IRequestChannel" /> ensure that the response message is correlated with the request message. </para>
          <para>Generally, if an implementation of <see cref="T:System.ServiceModel.Channels.IRequestChannel" /> receives a message that is not correlated to an outstanding request, it is dropped. </para>
          <para>The <see cref="Overload:System.ServiceModel.Channels.IRequestChannel.Request" /> method can be called concurrently across multiple threads. </para>
          <para>Passing the message into the request channel causes the message to be accessed. After you call <see cref="Overload:System.ServiceModel.Channels.IRequestChannel.Request" />, you can no longer inspect the message or call <see cref="M:System.ServiceModel.Channels.Message.Close" /> on the message. </para>
          <para>If the request message 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>
          <para>If a <paramref name="timeout" /> is passed while calling the function then that value is used. If the <see cref="P:System.ServiceModel.Channels.Binding.SendTimeout" /> is set on the binding, then the value on the binding is used if no <paramref name="timeout" /> is specified while calling the function.</para>
          <para>The <see cref="P:System.ServiceModel.Channels.ChannelBase.DefaultSendTimeout" /> is used if no timeout is specified on either the binding or while calling the function. This default value is 1 minute.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sends a message-based request and returns the correlated message-based response within a specified interval of time.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.ServiceModel.Channels.Message" /> received in response to the request. </para>
        </returns>
        <param name="message">
          <attribution license="cc4" from="Microsoft" modified="false" />The request <see cref="T:System.ServiceModel.Channels.Message" /> to be transmitted.</param>
        <param name="timeout">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.TimeSpan" /> that specifies the interval of time within which a response must be received.</param>
      </Docs>
    </Member>
    <Member MemberName="Via">
      <MemberSignature Language="C#" Value="public Uri Via { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class System.Uri Via" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Uri</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.ServiceModel.EndpointAddress" /> serves as both the ultimate destination and the physical address if a <see cref="P:System.ServiceModel.Channels.IRequestChannel.Via" /> is not specified. If the <see cref="P:System.ServiceModel.Channels.IRequestChannel.Via" /> is specified, then that is the actual physical address to which the message is sent and through which the message must go to arrive at its destination.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the transport address to which the request is send.</para>
        </summary>
      </Docs>
    </Member>
  </Members>
</Type>