将WCF服务引用添加到多个项目

Kal*_*yan 5 c# wcf wcfserviceclient

几个非常基本的问题.我是WCF的新手,我正在构建一个应用程序,它有一个服务项目,一个Web应用程序项目和一些我用于业务逻辑的类库项目等.

我在我的IIS上本地托管WCF并尝试向项目添加服务引用.

问题1.在添加引用时,是否应该单独为每个项目添加服务引用,还是可以在项目中共享相同的Service引用?

我问的原因是因为如果我添加单独的引用,每个引用都会获得它自己的命名空间,当我必须在项目之间传递相同的对象时,我得到一个InvalidCastException,因为每个ServiceClient都有一个不同的命名空间.

示例 - Site.Business.XDataService.XDataServiceClient().GetItem()与Site.Web.XDataService.XDataServiceClient()不同.GetItem()

问题2.我在实现Service接口的类中指定了本地服务的地址,如下所示 -

[ServiceBehavior(Namespace ="http:// localhost:801/XDataService.svc",IncludeExceptionDetailInFaults = true)]

这似乎不对.如果我将我的代码移动到另一个/ live环境,我显然必须再次更改此部分并重新编译.我在哪里可以指定(Web.Config?),以便我可以更改此地址而无需重建我的应用程序?

欣赏任何形式的洞察力.谢谢!

Mur*_*rph 6

在回答第一个问题时,您可以将服务引用放在自己的项目中,并在需要访问该服务的所有其他项目中引用该项目.

基本上所有的服务引用都是一堆.NET代码 - 命名空间,类等.

更好的是(!)对于WCF服务,您还可以免费获得一个接口(或多或少是您为服务定义的相同接口),因此您可以在依赖注入方面做得很好,使测试等更容易.