我有一个数据访问层被编译为一个类库并编译为一个dll。从历史上看,该DLL为我的Web应用程序提供了对数据库的数据访问。它工作得很好,但它做的是从web.config中提取我的连接字符串。这也没问题,但是现在我想在Windows窗体应用程序中使用这个数据DLL。有没有办法让DLL知道它是否在Web应用程序或winform应用程序中运行,并从web.config或app.config文件中适当地提取连接字符串?动态确定应用程序是基于Winform还是基于ASP.NET
1
A
回答
3
正如我在我的评论,一个类库将使用引用它的应用程序的配置文件。不管它是WinForms还是Web应用程序都没关系。只要有配置文件,库就可以访问它/使用它。
这是使用库的可重用代码的一大优势之一。
的告诫,这是确保正确的信息是在配置文件(应用程序或web):)
1
实际上,从解耦的角度来看,最好的方法是让应用程序使用DLL向库提供连接字符串。
+0
我想到了这一点,但我必须提供一个连接字符串,每次我实例化我的类或有一个全球设置一次并完成它的方法? – Icemanind
+1
您将在实例化类时提供它。但是,在应用程序生命周期中,这可能只发生一次。 –
相关问题
- 1. 是ASP.Net Webforms和基于ASP.Net MVC组件还是基于动作?
- 2. 它是基于窗口还是基于视图的应用程序?
- 3. 基于Visual Studio的新应用程序应该基于2008年还是2010年?
- 4. 基于文档的应用程序,还是不是?
- 5. 基于文档的应用程序,还是不是?
- 6. ?基于xml还是基于注释?
- 7. Cookie-是基于用户还是基于机器?
- 8. 是“newPageLoaded”标志?它是基于DOM还是基于网络?
- 9. 确定应用程序是处于前景还是后台还是处于死亡状态
- 10. PHP可以用于制作桌面应用程序还是仅用于制作基于Web的应用程序?
- 11. 更新一堆行是基于事务还是基于行?
- 12. websocket是基于流的还是基于包的协议?
- 13. 检查CLLocation是基于GPS还是基于蜂窝电话
- 14. 检查PostgreSQL/C ArrayType是基于零还是基于一个的
- 15. 对于基于Web或基于移动的应用程序,是否值得使用Spring Integration而不是Spring MVC?
- 16. 基于应用程序的状态
- 17. 如何决定项目是基于网络还是基于桌面?
- 18. 是基于TCP还是UDP的SMTP?
- 19. 是否可以通过T-SQL查询确定sproc是基于CLR还是常规基于T-SQL的?
- 20. 基于SAAS的移动应用程序
- 21. 基于PHP的手动应用程序
- 22. 浏览器是“基于webkit”还是“基于壁虎”是什么意思?
- 23. Oracle Forms 10g/11g:基于Web还是基于桌面?
- 24. libspotify API索引参数。基于0还是基于1?
- 25. 基于cron作业时间还是基于服务器时区?
- 26. 在Xcode 4中,更好的应用程序基于窗口还是基于视图?
- 27. Java - 确定两个访问者是否相似(基于Web的应用程序)
- 28. 基于控制台的应用程序到基于Java的GUI应用程序
- 29. 基于窗口的应用程序或基于视图的应用程序
- 30. 是否可以将基于视图的应用程序转变为基于导航的应用程序?
的DLL将使用消费应用程序的配置文件。不要紧,如果它是一个app.config或web.config。该DLL不需要知道,不关心它是网络还是winforms。 – Tim
我相信@Tim的答案是正确的。但为了以防万一,请在您的代码中引用配置值。 –
@ShaiCohen - 我正在使用的代码是'ConfigurationManager.ConnectionStrings [“MMDatabase”]。ConnectionString' – Icemanind