我正在创建一个框架来为我的应用程序添加插件。每个插件都必须实现一个抽象类。然后将每个插件编译为主应用程序可以找到的一个DLL Directory.GetFiles(myPath, "*.dll")
放哪里使用(SqlConnection)
这一切都很顺利,我可以在主应用程序中实例化我的插件并使用它们。每个插件基本上都是一个仪表板小部件,用户可以将其添加到仪表板以向他显示一些图表或图表。这意味着,每个插件都有一个计时器,并且在每个计时器事件中,它都会使用来自应用程序的SQL数据库的数据刷新图形。
所以我的问题是,我在哪里把SqlConnection
?我是否创建一个SqlConnection
并将其作为参数传递给每个插件,或者是否传递连接字符串并让每个插件创建它自己的SqlConnection
?
如果我将应用程序的SqlConnection
传递给插件,那么我会想象它会涉及到一些管理插件内部的连接。我显然必须检查它是否已打开,如果状态为ConnectionState.Fetching
或ConnectionState.Executing
,我该怎么办?它看起来很笨拙。
但另一方面,考虑到多个用户将运行该应用程序,并且每个用户可能在他的仪表板中选择了多个插件,它可以加起来多达SqlConnections
。这是可取的吗?我应该考虑第三种选择,插件将查询提交给主机,该主机将其与来自其他插件的其他查询进行排队,并在查询执行后将结果集返回给插件?这样至少每个用户只有一个SqlConnection
,无论他们选择了多少个插件。
说实话,这最后一个选项对我来说似乎相当复杂,我不确定我是如何实现它的。如果任何人都能指向我的文章,解释类似的东西,我真的很感激它。
谢谢,这听起来像更简单的方法。我不熟悉“连接工厂”。我现在使用谷歌搜索,但如果你有一篇文章或一些方便的东西,你可以指出我会很棒。 –
@DewaldSwanepoel看到我的更新:) – CodingGorilla
酷香蕉。我刚看到更新。看起来非常优雅。我认为这是我会追求的路线。 我不知道这个插件能在这种情况下使用(SqlConnection)吗? –