我能为一个REST WCF服务自动生成一个服务引用?(Can I generate a servic

2019-06-23 19:11发布

唯一的说法,我可以看到SOAP WCF通过REST(JSON)WCF是,一旦我的业务创建,我可以添加在Visual Studio AA参考的事实,我得到的强类型类的负载为我准备好与客户端类,我可以打电话给我通过所有的webmethod。 甚至据我记得设置web.config中。

然而,当我露出REST(JSON)服务,我仍然获得了WSDL。 所以,我想知道是否还可以自动建立我引用的方法吗?

Answer 1:

不使用WCF工具。 不像SOAP(其描述服务的既定协议 - WSDL),REST没有。 WADL是一个这样的协议,但它是不是太广泛,WCF不支持它。 你仍然可以得到一个WSDL,因为WCF将描述从服务一切可能。 但是,WSDL不会有<wsdl:port>元素,这将描述REST端点,这就是为什么你得到的WSDL,但不能产生对它的引用。

在后http://blogs.msdn.com/b/carlosfigueira/archive/2012/03/26/mixing-add-service-reference-and-wcf-web-http-aka-rest-endpoint-does-not -work.aspx在这个问题上多了很多信息。



Answer 2:

我想上面详细说明:

虽然这是事实,你不能得到一个JSON REST WCF服务的WSDL附加服务的参考,我要做的就是创建两个气象数据挂钩:

  1. 是返回JSON的操作
  2. 是一个XML运回一类的包装,包括所有的服务类我允许,我把它发现:

public class Discover
{
  public Manager Manager {get;}
  public Employee Emp {get;}
  ....
}

[OperationContract]
public Discover DiscoverDTOs()


Answer 3:

你可以间接。 尽管Visual Studio生成的客户端将无法正常工作,该客户端实现了一个接口,也产生了,你可以使用这样的:

WebChannelFactory<IService> factory = new WebChannelFactory<IService>(new Uri(endpointAddress));

IService proxy = factory.CreateChannel();

int result = proxy.Operation(1, 2, 3);

WebChannelFactory具有接受另一种超负荷WebHttpBinding ,您可以配置基于服务的配置,或者您可以在您的app.config文件手动进行此配置。



文章来源: Can I generate a service reference automatically for a REST WCF service?
标签: c# json wcf rest soap