我试图抽象的所有数据库的代码成一个单独的图书馆,然后使用,图书馆在所有我的代码。所有数据库连接使用类型Tableadapter我创造的拖放在数据集在VS2005,采用一连串的若.

问题是我没有能够解决的。净不传播库若要的其他项目,该项目的使用它。

总之,我有一个数据库层的图书馆,MyProgram.率显着降低分,它用于通过其他项目,如MyProgram.客户等等。当我有所有的数据集。客户。在MyProgram.客户。exe。config这样我可以更改后建立的。当我搬到MyProgram.率显着降低分是设置不可以做给我后,我建立的二进制文件。

编辑:这似乎是一个更为一般的问题,应.

我注意到的是,如果我手中添加一个设定仅仅使用一个图书馆,它将被正确地阅读。我唯一需要现在是设定自动包括在内。配置文件。

有帮助吗?

解决方案

若/ConnectionStrings应从目前运行程序游泳池。

我的意思是:

如果我有 A.exe 其中有一个类 DAL.cs.DAL。cs读一连串的配置和返回 "abc" 如预期的那样。

我然后将达尔。cs其自己的项目,因此,它自己的议会。我仍然可以有它的呼叫连串的应用程序。配置,但是, 我将需要在"主人"的组件在运行的应用程序,并加连串的应用程序的应用程序配置.因此,我创建了一个新的应用程序。config和指定的连字符串 "xyz" 在它的时候它运行,它按预期运行。

现在,如果我改变参考的 A.exe 项目为使用新的 DAL.dll, 什么连串做你认为它会有吗? "xyz"?不!它将使用 "abc" 因为它没有前因为这仍然是配置在应用配置文件 A.exe.

我知道这工作是因为我用共达尔码在许多Windows 网络应用程序。

如果这还不清楚,或者不能帮助你的问题,请让我知道通过谈到这个答案。

更新以下评论运算

通过"主机",我的意思是一个应用程序,呼吁在共同的代码。这可能是一个窗户或网络应用程序,基本上是应用的上下文。

你会需要创造条目的配置文件的每个应用程序采用共同的编码。如果我误会了你最初的问题(完全可能的,这是一个漫长的一天!) 和你想集中的配置,那么你会需要:

  • 创建某种形式的集中化存储(以XML、数据库,无论).
  • 加强你的通用代码要有的缺省值,以使它能够连接到中央储存。
  • 自此,这个代码然后可以自行配置,根据该信息在配置存储。

希望这可以帮助:)

其他提示

如果我正确理解你的问题,这听起来像你需要

1)对所有数据访问调用一个常见的应用程序上下文

2)访问的配置设置以不同的方式

1:单一上下文下运行的服务内包装你的数据层(IIS,Windows服务等)

2:不要使用您提供的配置管理机制。代替使用属性文件中的特定位置。

不要忘记,虽然来自不同层面的配置设置级联。例如...如果你在machine.config中添加一个设置,然后在该计算机上运行的每个应用程序将使用该设置,除非它被替换在较低的水平......这可能是设置内的标准化设置的好方法你配置文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top