我经常需要创建一个.Net类库,它需要app.config来处理诸如数据库连接字符串之类的事情.但是,这些设置必须位于调用应用程序的app.config或web.config中.如果我想在多个应用程序中分发DLL,那就很麻烦了,因为我必须将这些设置复制到每个应用程序的app.config中.
我考虑过从类库中通过代码手动读取配置设置,但这也是一个很大的痛苦.有没有人有任何关于在类库中加载app.config设置的最佳方法的建议?
我如何获得当前组件的路径?我需要从某些路径获取相对于当前程序集(.dll)位置的数据.
我以为有人告诉我使用反射命名空间,但我找不到任何东西.
我有标准的日志记录,NHibernate等配置块,我app.config想将它们提取到一个通用的XML文件中,可以作为我所有应用程序app.config文件的参考.
这可能吗?
我正在研究ASP.NET MVC项目,并决定将一些功能提取到一个单独的类库项目(在同一个解决方案中).
我有些感动的元素<appSettings></appSettings>从Web.config主项目(我们称之为项目A),以App.config在类库项目(我们称之为项目B).我添加了对System.Configuration.dll的引用以访问项目B中的ConfigurationManager.
示例App.config文件用于项目B,如下所示.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Key1" value="Value1"/>
<add key="Key2" value="Value2"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我按如下方式访问这些设置(在项目B中).
string key1 = ConfigurationManager.AppSettings["Key1"];
string key2 = ConfigurationManager.AppSettings["Key2"];
Run Code Online (Sandbox Code Playgroud)
我注意到了key1和key2返回的值ConfigurationManager是null.
在调试时,我看到项目A中ConfigurationManager原始的拉取值Web.config(另一<appsettings></appsettings>部分是我没有移动到项目B的部分)!
这对我没有任何意义.有人能告诉我我做错了什么,所以我可以访问App.config中的设置吗?
谢谢.