我已将包含一些AppSettings的App.config文件从同一解决方案的EXE项目移到DLL项目中。之后,我注意到使用配置管理器时,只会得到空值。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Path1" value="C:\ProgramData\Resources\file2.xml" />
<add key="Path2" value="C:\ProgramData\Development\file1.xml" />
</appSettings>
</configuration>
/* Reading */
public string Path1=> ConfigurationManager.AppSettings["Path1"];
public string Path2=> ConfigurationManager.AppSettings["Path2"];
如果我将App.config移回EXE项目,则可以使用配置管理器读取所有值。
所以,我的问题是,如果我的解决方案中只有DLL(COM)项目,而我对EXE(由第三方开发)项目没有控制权,那么如何使用App.config文件管理设置?
答案 0 :(得分:3)
配置文件不会编译到dll中。
除非您输入特殊代码以查找其他地方,否则该应用程序将使用解决方案启动项目中的app.config。
这是设计使您可以更改配置而不必仅因为设置更改而重新编译。
答案 1 :(得分:1)
您不应将app.config用于类库中的任何设置。这样做是不好的做法,这就是即使Microsoft也不在类库中提供app.config的原因。
类库所需的任何值都应使用参数从应用程序传递给类。例如,在您的情况下,文件路径可以作为参数传递给类方法或构造函数等。
但是如果您仍然想访问,请尝试以下选项
1.将对System.Configuration.dll的引用添加到您的类库中,并在using块中使用System.Configuration进行添加
2。编写代码以将app.config文件读取为常规xml文件。有点像这样。
delete