2012-10-03 46 views
1

我有一个数据访问层被编译为一个类库并编译为一个dll。从历史上看,该DLL为我的Web应用程序提供了对数据库的数据访问。它工作得很好,但它做的是从web.config中提取我的连接字符串。这也没问题,但是现在我想在Windows窗体应用程序中使用这个数据DLL。有没有办法让DLL知道它是否在Web应用程序或winform应用程序中运行,并从web.config或app.config文件中适当地提取连接字符串?动态确定应用程序是基于Winform还是基于ASP.NET

+3

的DLL将使用消费应用程序的配置文件。不要紧,如果它是一个app.config或web.config。该DLL不需要知道,不关心它是网络还是winforms。 – Tim

+0

我相信@Tim的答案是正确的。但为了以防万一,请在您的代码中引用配置值。 –

+0

@ShaiCohen - 我正在使用的代码是'ConfigurationManager.ConnectionStrings [“MMDatabase”]。ConnectionString' – Icemanind

回答

3

正如我在我的评论,一个类库将使用引用它的应用程序的配置文件。不管它是WinForms还是Web应用程序都没关系。只要有配置文件,库就可以访问它/使用它。

这是使用库的可重用代码的一大优势之一。

的告诫,这是确保正确的信息是在配置文件(应用程序或web):)

+0

所以如果我使用这一行:'ConfigurationManager.ConnectionStrings [“MMDatabase”] .ConnectionString'那么它会自动知道使用正确的配置文件?假设密钥名称“MMDatabase”在两个配置文件中都有效? – Icemanind

+0

@icemanind - 是的,这是正确的。 – Tim

1

实际上,从解耦的角度来看,最好的方法是让应用程序使用DL​​L向库提供连接字符串。

+0

我想到了这一点,但我必须提供一个连接字符串,每次我实例化我的类或有一个全球设置一次并完成它的方法? – Icemanind

+1

您将在实例化类时提供它。但是,在应用程序生命周期中,这可能只发生一次。 –

相关问题