检索元数据

元数据检索是从元数据终结点(如 WS-MetadataExchange (MEX) 元数据终结点或 HTTP/GET 元数据终结点)请求和检索元数据的过程。

从命令行使用 Svcutil.exe 检索元数据

通过使用 ServiceModel 元数据实用工具 (Svcutil.exe) 工具并传递 /target:metadata 开关和地址,检索使用 WS-MetadataExchange 或 HTTP/GETtool 请求的服务元数据。 Svcutil.exe 在指定地址下载元数据并将文件保存到磁盘上。 Svcutil.exe 在内部使用一个 System.ServiceModel.Description.MetadataExchangeClient 实例,并从配置中加载名称与作为输入传递给 Svcutil.exe 的地址方案相匹配的 IMetadataExchange 终结点配置。

使用 MetadataExchangeClient 以编程方式检索元数据

Windows Communication Foundation (WCF) 可以使用标准化协议(如 WS-MetadataExchange 和 HTTP/GET 请求)检索元数据。 这两种协议均受 MetadataExchangeClient 类型支持。 您可以通过提供元数据终结点的地址和一个可选绑定,使用 System.ServiceModel.Description.MetadataExchangeClient 类型来检索服务元数据。 由 System.ServiceModel.Description.MetadataExchangeClient 实例使用的绑定可以是 MetadataExchangeBindings 静态类中的默认绑定之一、用户提供的绑定或从 IMetadataExchange 协定的终结点配置加载的绑定。 System.ServiceModel.Description.MetadataExchangeClient 也可以使用 HttpWebRequest 类型来解析 HTTP URL 对元数据的引用。

默认情况下,System.ServiceModel.Description.MetadataExchangeClient 实例与单个 ChannelFactory 实例关联。 通过重写 System.ServiceModel.ChannelFactory 虚拟方法,您可以更改或替换由 System.ServiceModel.Description.MetadataExchangeClient 使用的 GetChannelFactory 实例。 同样,通过重写 HttpWebRequest 虚拟方法,可以更改或替换由 System.ServiceModel.Description.MetadataExchangeClient 使用的 MetadataExchangeClient.GetWebRequest 实例以发出 HTTP/GET 请求。

本节内容

如何:使用 Svcutil.exe 下载元数据文档
演示如何使用 Svcutil.exe to 下载元数据文档。

如何:使用 MetadataResolver 动态获取绑定元数据
演示如何使用 System.ServiceModel.Description.MetadataResolver 在运行时动态获取绑定元数据。

如何:使用 MetadataExchangeClient 检索元数据
演示如何使用 System.ServiceModel.Description.MetadataExchangeClient 类将元数据文件下载到包含要写入到文件或用于其他用途的 System.ServiceModel.Description.MetadataSet 对象的 System.ServiceModel.Description.MetadataSection 对象。

另请参阅