如何将外部配置文件与WPF一起使用?

如何将外部配置文件与WPF一起使用?,wpf,configuration,external,Wpf,Configuration,External,我想设置一个外部配置文件,我可以存储在我的WPF应用程序的目录中,而不一定是我创建程序时的exe目录 我创建了一个App.Config文件,并将System.Configuration添加到我的程序集中。我的App.Config有: <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings file="sd.config"> <add key="username"

我想设置一个外部配置文件,我可以存储在我的WPF应用程序的目录中,而不一定是我创建程序时的exe目录

我创建了一个App.Config文件,并将System.Configuration添加到我的程序集中。我的App.Config有:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="sd.config">
   <add key="username" value="joesmith" />
  </appSettings>
</configuration>
返回一个空字符串。当我刚从App.Config中检索用户名字段时,它就工作了。我错过了什么?非常感谢

请参阅以下文档:

AppSettings属性:

获取当前应用程序默认设置的AppSettingsSection数据 配置

您需要做一些额外的工作来获取不在应用程序默认配置文件中的数据

不要使用
file=
属性,而是向定义辅助配置文件位置的
添加一个键,如下所示:

<add key="configFile" value="sd.config"/>
对于您的示例来说,该代码可能不是死板的,但希望它能让您走上正确的轨道

请参阅以下文档:

AppSettings属性:

获取当前应用程序默认设置的AppSettingsSection数据 配置

您需要做一些额外的工作来获取不在应用程序默认配置文件中的数据

不要使用
file=
属性,而是向定义辅助配置文件位置的
添加一个键,如下所示:

<add key="configFile" value="sd.config"/>
对于您的示例来说,该代码可能不是死板的,但希望它能让您走上正确的轨道

<add key="configFile" value="sd.config"/>
var map = new ExeConfigurationFileMap();
map.ExeConfigFilename = Path.Combine(
      AppDomain.CurrentDomain.SetupInformation.ApplicationBase, 
      ConfigurationManager.AppSettings["configFile"]
);

//Once you have a Configuration reference to the secondary config file, 
//you can access its appSettings collection:
var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

var userName1 = config.AppSettings["username1"];