项目结构
我有一个名为SLProj的Silverlight项目,引用了一个名为ServiceClients的Silverlight类库项目。ServiceClients有两个wcf服务引用,Svc1.svc和Svc2.svc。Svc1.svc和Svc2.svc都在两个不同的WCF项目中,这两个项目使用相同的DataContract,这些DataContract再次在另一个类库项目MyDataContracts.dll中。
问题描述
现在,在我的ServiceClients项目中,当我需要使用同时存在于两个服务引用中的DataContract类时,我会遇到模糊引用的问题。如果这是一个WinForms或WebForms项目,我可以引用MyDataContracts.dll并重用公共类型。但由于这个MyDataContracts.dll是使用非Silverlight类库构建的,无法被Silverlight项目引用。
解决方案...
我不确定以下是否是处理此问题的最佳方法。有没有人可以告诉我是否有更清晰的方法来解决这个问题,或者这是目前我们拥有的最好方法?
- create a single service reference.
- click the 'show all files' button in the solution explorer
- drill into the service reference and find Reference.svcmap and open it
- find the MetadataSources section
add a second line to include the address to your second service. for example:
MetadataSource Address="http://address1.svc" Protocol="http" SourceId="1" MetadataSource Address="http://address2.svc" Protocol="http" SourceId="2"
save, close, and update service reference.