【发布时间】:2012-09-28 23:20:34
【问题描述】:
背景
我继承了一个项目,该项目依赖于几个不同的 WCF“mex”端点的数据。我的特定项目的目标,一旦完成,就是作为一个 API 层调用这些 legacy WCF 服务,操作返回的对象(仅在极少数情况下),序列化为 JSON,然后对提出请求的客户。
C#、MVC 4、.NET 4。
我对 RESTful Web 服务非常有经验,但对 WCF 却没有。
这是一个端点 uri 的示例:
http://product.sqa.acme.com/products.svc/mex
问题
在设置我的第一个使用这些 WCF 服务之一的类时,我似乎必须设置一个完整的数据协定才能使用返回的对象。它是否正确?如果这不正确,我如何调用 WCF 接口的方法(即IProductService >> GetProductById(123))然后在没有契约的情况下操作生成的对象?
我试过这个:
var ip = (IProductService)new ProductServiceClient("http://product.sqa.acme.com/product.svc/mex");
var product = ip.GetProductById("DVP4963619");
但代码失败,因为没有找到合约。由于我将要做的 90% 只是简单地传递一个请求,然后将响应序列化为 JSON,因此必须为我所做的每个服务调用定义一个合同似乎有点过头了。任何帮助表示赞赏。
谢谢,
马特
【问题讨论】: