App.Config返回null

时间:2016-05-02 22:53:10

标签: c#

我有一个类库项目,我想在其中加载配置设置。

这是app.config文件。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="editMode" value="2" />
    <add key="fileType" value="0" />
    <add key="Editor" value="C:\Program Files\Adobe\Adobe Photoshop CC 2015\Photoshop.exe" />
  </appSettings>
</configuration>

这是主程序中的代码。

string savedEditor = ConfigurationManager.AppSettings["Editor"];
MessageBox.Show(savedEditor);
string savededitMode = ConfigurationManager.AppSettings["editMode"];
MessageBox.Show(savededitMode);                
string savedfileType = ConfigurationManager.AppSettings["fileType"];
MessageBox.Show(savedfileType);

编译正常并创建*.dll.config文件。但是,它为三个键的值返回null。我究竟做错了什么?感谢。

2 个答案:

答案 0 :(得分:1)

我只是将我的评论作为答案,因为它很可能是问题的根源。

虽然您的类库项目(构建dll的东西)可能会输出一个配置,但它不是在其他项目中导入该类时使用的。使用的app.config是与正在调用的应用程序相关的应用程序。由于您很可能在该文件中没有这些值,因此尝试从AppSettings字典中检索它们将返回<local:ElementCollection xmlns:local="clr-namespace:SimpleDataBind" > <local:Element Name="Multiple Pete" /> <local:Element Name="Multiple George" /> <local:Element Name="Multiple John" /> </local:ElementCollection> 。要解决此问题,请将以下项目复制到其app.config的主应用程序null部分,或者如果不存在则使用这些设置创建app.config。

appSettings

答案 1 :(得分:0)

与上面的答案一样,将使用的配置文件用于调用/引用dll的可执行文件。

所以,如果我有一个名为&#34; MyProgram.exe&#34;的可执行文件。并且你的dll被命名为&#34; MyFirst.dll&#34;,然后&#34; MyProgram.exe&#34;,&#34; MyFirst.dll&#34;和&#34; MyProgram.exe.config&#34;必须在同一目录中。 &#34; MyProgram.exe.config&#34;文件需要具有您尝试从配置文件中检索的配置值。

这有意义吗?