作为客户端是否有可能获得WCF主机公开的合同列表?
我想查询服务并询问它实现的接口。
答案 0 :(得分:2)
答案 1 :(得分:0)
WCF不支持。
您可以查询服务的WSDL合同,但不能查询WCF合同或任何接口。
答案 2 :(得分:0)
你能做的最好的事情就是看看暴露了什么,并假设这是界面。您将无法看到该类实现的所有不同接口。例如,如果你有一个实现IFooService和IDisposable的服务,通过WCF公开IFooService,你就可以从客户端看到IFooService的所有方法。
WCF测试实用程序将获取给定的wsdl并为其生成客户端,查看源代码可能是一个很好的起点。 (你必须用像反射器这样的东西来反编译)
另一个想法是,您可以以编程方式调用svcutil为给定的wsdl生成客户端,然后调用msbuild来编译它,并使用反射来加载输出程序集。这将是一项相当大的工作,我不知道你会用它做什么。您必须构建一个相当复杂的UI来检查和调用客户端。
答案 3 :(得分:0)
通常,(Web)服务由基于XML的协议(如WSDL)描述。这既用于发现服务,也用于描述其操作。此外,有时也使用UDDI,但主要用于企业应用程序集成(内部使用)。
因此,您可以让您的WCF服务生成WSDL信息,并让您的客户端查询。