我正在开发一个项目,它是一个网站,一个移动应用程序和一个桌面WPF应用程序,它们都依赖于服务。移动应用程序运行正常,但由于MaxArrayLength属性,桌面和网站在从数据库获取图像时遇到问题。我们能够更改web.config文件的maxArrayLength属性,网站现在可以正常工作,但桌面应用程序仍然坏了。我们知道我们应该在App.config文件中更改一些内容,但无法弄清楚maxArrayLength属性应该在哪里(它下面有什么标记等)。
我们目前通过桌面直接引用该服务,并通过该网站提供服务参考。有没有办法在不添加服务引用的情况下执行此操作,只是能够保持对服务的直接引用?
答案 0 :(得分:1)
没有任何方法可以做到这一点 添加服务引用并且只是 能够保持直接 参考服务?
你为什么要那样做?
如果您直接引用WCF项目,只需点击一些包含的业务逻辑,您的解决方案可能需要一些项目重构。也就是说,你应该在一个单独的项目中拥有所有客户使用的业务逻辑,以保持高凝聚力。
如果你需要调用WCF服务来实际访问提供的服务(而不仅仅是调用公开的业务逻辑,你可能正在做什么,如果我的理解是正确的),那么你很可能会想要选择其中一个选项:
选项A
使用服务引用(而不是项目引用)以通过自动生成的代理调用WCF服务。
选项B
使用工具(具有一些配置)和IoC容器来解析对WCF服务的依赖性。有关如何入门的一些线索,请参阅this article。此示例使用Castle's非常简单的WCF Integration Facility。