﻿<?xml version="1.0" encoding="utf-8"?><Type Name="IMetadataExchange" FullName="System.ServiceModel.Description.IMetadataExchange"><TypeSignature Language="C#" Value="public interface IMetadataExchange" /><TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IMetadataExchange" /><AssemblyInfo><AssemblyName>System.ServiceModel</AssemblyName><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Interfaces /><Attributes><Attribute><AttributeName>System.ServiceModel.ServiceContract(Name="IMetadataExchange", Namespace="http://schemas.microsoft.com/2006/04/mex")</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When programming indigo1 services, it is useful to publish metadata about the service. For example, metadata can be a Web Services Description Language (WSDL) document that describes all of the methods and data types employed by a service. Returning metadata about an indigo2 service allows consumers of a service to easily create clients for the service. For more information about indigo2 metadata endpoints, see <format type="text/html"><a href="66a61bd0-18d3-4e7e-bf8b-177a10ac2f60">Metadata</a></format>.</para><para>Services implemented using indigo2 publish metadata by exposing one or more metadata endpoints. Metadata endpoints in indigo2 have an address, a binding and a contract like any other endpoint.  The <see cref="T:System.ServiceModel.Description.MetadataReference" /> interface specifies the service contract implemented by all metadata endpoints in indigo2.</para><para>There is no need to implement the <see cref="T:System.ServiceModel.Description.MetadataReference" /> contract in your service implementation.  Instead, add the <see cref="T:System.ServiceModel.Description.ServiceMetadataBehavior" /> to the service description. </para><para>Or, when using configuration, set the contract attribute of the endpoint element to IMetadataExchange. For an example, see <format type="text/html"><a href="f061443f-92df-4824-b36a-609c4cd14a17">How to: Publish Metadata for a Service Using a Configuration File</a></format>.</para><para>For details on publishing metadata in indigo2 see <format type="text/html"><a href="3a56831a-cabc-45c0-bd02-12e2e9bd7313">Publishing Metadata</a></format>.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Exposes methods used to return metadata about a service.</para></summary></Docs><Members><Member MemberName="BeginGet"><MemberSignature Language="C#" Value="public IAsyncResult BeginGet (System.ServiceModel.Channels.Message request, AsyncCallback callback, object state);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IAsyncResult BeginGet(class System.ServiceModel.Channels.Message request, class System.AsyncCallback callback, object state) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.ServiceModel.OperationContract(Action="http://schemas.xmlsoap.org/ws/2004/09/transfer/Get", AsyncPattern=true, ReplyAction="http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.IAsyncResult</ReturnType></ReturnValue><Parameters><Parameter Name="request" Type="System.ServiceModel.Channels.Message" /><Parameter Name="callback" Type="System.AsyncCallback" /><Parameter Name="state" Type="System.Object" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Starts an asynchronous retrieval of metadata.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.IAsyncResult" /> that can be passed to the <see cref="M:System.ServiceModel.Description.IMetadataExchange.EndGet(System.IAsyncResult)" /> method.</para></returns><param name="request"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.ServiceModel.Channels.Message" /> that should be processed to determine the metadata to return.</param><param name="callback"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.AsyncCallback" /> that points to the method that will process the metadata.</param><param name="state"><attribution license="cc4" from="Microsoft" modified="false" />Any data which allows the caller to determine which asynchronous call is being returned.</param></Docs></Member><Member MemberName="EndGet"><MemberSignature Language="C#" Value="public System.ServiceModel.Channels.Message EndGet (IAsyncResult result);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.Message EndGet(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>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Concludes the retrieval of metadata.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.ServiceModel.Channels.Message" /> containing the processed metadata.</para></returns><param name="result"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.IAsyncResult" />  that contains data used to further process the metadata.</param></Docs></Member><Member MemberName="Get"><MemberSignature Language="C#" Value="public System.ServiceModel.Channels.Message Get (System.ServiceModel.Channels.Message request);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.ServiceModel.Channels.Message Get(class System.ServiceModel.Channels.Message request) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.ServiceModel.OperationContract(Action="http://schemas.xmlsoap.org/ws/2004/09/transfer/Get", AsyncPattern=false, ReplyAction="http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.ServiceModel.Channels.Message</ReturnType></ReturnValue><Parameters><Parameter Name="request" Type="System.ServiceModel.Channels.Message" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns the service metadata.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.ServiceModel.Channels.Message" /> containing the metadata.</para></returns><param name="request"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.ServiceModel.Channels.Message" /> that contains the request for metadata.</param></Docs></Member></Members></Type>