1

设置:在过去的一年中,我创建了大约 20 个常见的 WCF 服务,用于处理我公司内的特定任务。开发人员已经开始在他们的应用程序中轻松使用这些服务来执行这些特定任务。问题是因为公司目前没有强制使用这些公共服务的职位(小公司,我们只是没有资源或带宽来强制执行标准,我希望在它得到之前解决这个问题更糟糕或难以管理)一些团队倾向于编写自己的服务,这些服务在功能上反映了现有公共服务已经完成的功能。

为了解决这个问题,我正在构建一个基本的 Web 应用程序,它只是构建一个“服务层”类库,其中包含执行特定功能的公共服务引用(包括一些公开的帮助方法)。例如,如果应用程序需要允许部分保存和文件上传,那么我会将服务引用添加到我们的文件上传服务和我们的表单保存服务到这个服务层类库。

问题:
有没有办法动态/以编程方式检索 WCF 服务引用的文件(与 VS 2010 在“添加服务引用”时所做的非常相似)并将它们附加到 csproj 文件?我知道如何构建通用构建文件 (csproj),但我不确定需要什么或将服务引用附加到该项目的最佳方法是什么。

任何帮助将不胜感激,我提前感谢您的时间。

4

1 回答 1

1

您不需要生成这些文件来访问 WCF 服务 - VS2010 正在为您做的*是生成合同和数据对象的客户端镜像。例如,如果您Foo在服务器上定义了一个,那么您将获得该创建的客户端版本,并且生成的代理将反序列化为该客户端版本的Foo.

如果您确实想生成这些文件,请参阅这个先前的 SO 答案,了解如何使用 svcutil.exe 将代理文件生成到特定目录的示例。请注意,您确实应该将合同和数据对象放在单独的程序集中,如果这样做,那么您将能够实现客户端和服务器之间的重用 - 换句话说,svcutil 不需要生成客户端副本那些数据对象。

*请记住,这是 VS 的默认行为,可以更改。

于 2012-11-19T23:44:13.227 回答