在WCF中获取服务元数据信息2010-11-27 博客园 张逸所谓获取WCF的服务元数据(Metadata),归根结点,实际上就是获取服务的 终结点(Endpoint)的信息,这是服务公开在外的数据信息,包括Address、 Binding与Contract,也就是所谓的ABCs。Juval Löwy在《Programming WCF Services》一书中,用生动形象的棒棒糖表示了终结点的构成:

WCF服务可能包含多个终结点,每个终结点相当于是通信的入口,客户 端和服务端通过终结点交换信息,如下图所示:

因而,如果能够获取终结点的详细信息,有助于我们更好地剖析服务 的定义、内容与执行方式。服务有两种方案可以发布自己的元数据。一 种是基于HTTP-GET协议提供元数据;另一种则为元数据交换方式,它往往使用一 个专门的终结点,称之为元数据交换终结点。元数据交换终结点与其它终结点相 似,仍然包含了地址、绑定与契约,但是使用的服务契约为WCF提供的接口 IMetadataExchange。实际上,这两种发布元数据的方式代表了它使用了 两种不同的标准协议,前者为HTTP/GET请求,后者为WS-MetadataExchange(MEX) 。在WCF,以MetadataExchangeClientMode枚举类型表示这两种元数据交换模式 :
public enum MetadataExchangeClientMode
{
MetadataExchange,
HttpGet
}