1

我正在将我们的 win 表单应用程序转换为使用 WCF 服务而不是客户端调用 SQL 数据库。

我不确定最佳实践是什么,但我们在大约 600 个数据库上有相同的数据库模式。

我希望在这里找到一个解决方案,我在启动 winform 应用程序时声明 WCF 服务以使用该数据库。就我而言,我试图避免在每种方法中都传递要使用的连接字符串的参数。

我对 WCF 有一些了解,但我对“公共声明”和连接上下文知之甚少,并且没有为我的场景找到任何好的示例。

这甚至可能吗?

如果有人可以指导我正确的方向或给我一些示例代码,将不胜感激!:)

提前致谢

4

2 回答 2

1

WCF 确实支持会话。因此,您可以在第一次调用中传递要使用的数据库,而所有其他调用都将使用会话中的值。

请参阅:http: //msdn.microsoft.com/en-us/library/ms733040.aspx

于 2011-01-31T15:45:45.840 回答
1

WCF 是一个奇怪的 API,因为您会在第一个月根本没有得到它,而在接下来的几个月里,您会想知道为什么无法得到它。我可以回答你的一些问题。

  1. 我知道的最好的资源是 Juval Lowry 的书,虽然我听说 Bustamante 的书也很好。

  2. 您可以在运行表单之前在 Main() 中启动 WCF 服务

  3. 对于您正在谈论的设计,您可能需要为您的服务提供一个非默认构造函数。这有点痛苦,我相信洛瑞的书可以解决这个问题。如果不看 IInstanceProvider 和 IEndPointBehavior

话虽如此,我并没有真正看到 WCF 如何适合这种设计方案。它确实用于客户端和服务器之间的通信。如果您打算将它用于 SOA 类型的设计,还有其他更清洁、更轻量级的方法。依赖注入等。你能举一个更直接的例子来说明你想要做什么吗?我什至会建议一个简单地包装您的数据库的类,您将其传递到需要数据库信息而不是 WCF 的所有对象中。

于 2011-01-31T16:03:43.840 回答