我正在将我们的win表单应用程序转换为使用WCF服务而不是客户端调用SQL数据库。
我不确定最新的做法,但我们在大约600个数据库上有相同的数据库模式。
我希望在这里找到一个解决方案,我在winform应用程序启动时声明WCF服务使用此数据库。因为我试图避免在每个方法中传递一个参数来使用什么连接字符串。
我对WCF有一些了解,但我对“公共声明”和连接上下文知之甚少,并且没有为我的场景找到任何好的例子。
这甚至可能吗?
如果有人能指导我正确的方向或给我一些示例代码,我将非常感谢! :)
提前致谢
答案 0 :(得分:1)
WCF支持会话。因此,您可以在第一次调用中传递要使用的数据库,并且所有其他调用都将使用会话中的值。
答案 1 :(得分:1)
WCF是一个奇怪的API,因为你将花费第一个月完全没有得到它,接下来的几个月就会想知道你是如何得不到它的。我可以回答你的一些问题。
我所知道的最好的资源是Juval Lowry的书,虽然我听到Bustamante的书也非常好。
您可以在运行表单之前在Main()中启动WCF服务
对于您所谈论的设计,您可能需要为您的服务设置非默认构造函数。这有点痛苦,我相信Lowry的书处理它。如果不看IInstanceProvider和IEndPointBehavior
话虽如此,我并没有真正看到WCF如何适应这种设计方案。它真的用于客户端和服务器之间的通信。如果您计划将其用于SOA类型设计,则还有其他方法更清洁,重量更轻。依赖注入等 你能举出一个更直截了当的例子来说明你想做什么吗?我甚至建议一个简单包装你的数据库的类,你传递给需要数据库信息而不是WCF的所有对象。