【发布时间】:2014-02-12 19:07:49
【问题描述】:
情况:
我有多个项目的解决方案:
- 可执行应用 #1
- 可执行应用 #2
- WCF 项目
- 共享项目
- “其他”项目
- ...
现在我需要在我的可执行应用程序 #1 中使用 WCF 服务。
例如。从 WCF 项目中的 UserService 检索有关用户的信息。
由于这两个可执行文件都需要登录,由UserService 处理,我在我的共享项目中添加了一个“Authenticate”方法。此身份验证也由UserService 处理。
问题:
现在我必须在每个项目内部添加一个服务引用,这实际上是没有问题的。 但是现在我在所有三个项目中都生成了代理类和端点。
我认为这是一个问题,因为我必须更新所有 3 个服务参考:
- 可执行的 App #1 只需要端点(可以使用共享项目的代理类)
- Executable App #2 只需要端点(同上)
- 共享项目只需要代理类
问题:
有没有什么好的解决方案可以添加服务引用而不在共享项目中创建端点配置并且不在可执行应用程序中创建代理类?
【问题讨论】:
-
你的 WCF 是 SOAP 吗?如果是,那么您就在正确的道路上。但是如果你的服务是 RESTFul 的,那你为什么不使用 WebRequest 呢?
-
@MuneebAmjad 服务是 SOAP。
-
为什么不把所有的服务引用放到一个类库项目中,然后引用那个项目呢?你甚至可以制作代理类
internal,并通过外观类只公开你喜欢的接口。 -
@JohnSaunders 这 IS 我现在正在做的事情。但可执行项目需要(由 Microsoft 预定义)端点配置。这些伴随着添加服务引用。我可以手动添加它们,但这确实是一个痛苦的**...
-
没有。在共享类库中添加和更新。将共享库的 app.config 中的配置复制到 .exe 项目的配置文件中。根据需要更新。
标签: c# wcf proxy-classes endpoints multiple-projects