【发布时间】:2011-10-29 18:06:40
【问题描述】:
项目结构
我有一个 silverlight 项目 SLProj,它引用了一个名为 ServiceClients 的 silverlight 类库项目。 ServiceClients 有两个 wcf 服务引用,Svc1.svc 和 Svc2.svc。 Svc1.svc 和 Svc2.svc 都在两个不同的 WCF 项目中,它们使用相同的 DataContracts 集,这些 DataContracts 又位于另一个名为 MyDataContracts.dll 的类库项目中。
问题描述
现在,在我的 ServiceClients 项目中,当我需要使用两个服务引用中都存在的 datacontract 类时,我遇到了一个不明确的引用问题。如果这是一个 winforms 或 webforms 项目,我可以引用 MyDataContracts.dll 并重用常用类型。但是由于这个 MyDataContracts.dll 是使用非 silverlight 类库构建的,因此无法在 silverlight 项目中引用它
解决方法...
我不确定以下这是否是解决此问题的最佳方法。谁能告诉我是否有更清洁的方法来解决这个问题,或者这是我们迄今为止最好的方法吗?
- 创建单个服务引用。
- 点击解决方案资源管理器中的“显示所有文件”按钮
- 钻取服务引用并找到Reference.svcmap并打开它
- 找到 MetadataSources 部分
-
添加第二行以将地址包含到您的第二个服务中。例如:
MetadataSource Address="http://address1.svc" Protocol="http" SourceId="1" MetadataSource Address="http://address2.svc" Protocol="http" SourceId="2" 保存、关闭和更新服务参考。
【问题讨论】:
标签: silverlight wcf