如何在 WPF 应用程序中使用 App.config 文件?

我在我的 WPF 应用程序中创建了一个 App.config 文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appsettings>
<add key="xmlDataDirectory" value="c:\testdata"/>
</appsettings>
</configuration>

然后我试着读出这个值:

string xmlDataDirectory = ConfigurationSettings.AppSettings.Get("xmlDataDirectory");

但它说这是过时的,我应该使用 ConfigurationManager,我找不到,甚至在类视图中搜索。

有人知道如何在 WPF 中使用这样的配置文件吗?

174607 次浏览

你必须引用在 GAC 中的 System.Configuration程序集。

使用 ConfigurationManager不是 WPF 特定的: 它是访问任何类型应用程序的配置信息的特权方式。

有关详细信息,请参阅 MicrosoftDocs-ConfigurationManager

app.config中,将 Appset 更改为:

<applicationSettings>
<WpfApplication1.Properties.Settings>
<setting name="appsetting" serializeAs="String">
<value>c:\testdata.xml</value>
</setting>
</WpfApplication1.Properties.Settings>
</applicationSettings>

然后,在代码背后:

string xmlDataDirectory = WpfApplication1.Properties.Settings.Default.appsetting.ToString()

这个也可以

WpfApplication1.Properties.Settings.Default["appsetting"].ToString()

您必须在解决方案中添加对 System.configuration的引用。此外,包括 using System.Configuration;。这样做之后,您就可以访问所有的配置设置。

你必须通过资源管理器引用 System.Configuration(不仅仅是附加 using System.Configuration) ,然后你可以写:

string xmlDataDirectory =
System.Configuration.ConfigurationManager.AppSettings.Get("xmlDataDirectory");

使用 vs2010进行测试(感谢 www.developpez.net )。 希望这个能帮上忙。

您可以通过 app.config文件的属性将配置文件模式修改回 DotNetConfig.xsd。要找到所需模式的目的地,您可以按名称搜索它或创建一个 WinForms 应用程序,添加到项目的配置文件,在它的属性中,您将找到到文件的完整路径。

在我的例子中,我遵循了下面的步骤。

App.config

<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>


<appSettings>
<add key="POCPublishSubscribeQueueName" value="FormatName:Direct=OS:localhost\Private$\POCPublishSubscribe"/>
</appSettings>


</configuration>

在我的项目中添加了 System.Configuartion

在文件顶部添加了 using System.Configuration语句。

然后用这句话:

string queuePath = ConfigurationManager.AppSettings["POCPublishSubscribeQueueName"].ToString();

我有一个类库 WPF 项目,我使用:

'Read Settings
Dim value as string = My.Settings.my_key
value = "new value"


'Write Settings
My.Settings.my_key = value
My.Settings.Save()

有一篇关于微软 应用程序设置的好文章。 根据这一点,你需要:

  • 手动创建 App.config 文件(从 Project Context 菜单-> Add-> New Item...-> Application Configuration File.) Dialog window for adding application config file
  • 在这里添加必需的部分(我只使用应用程序范围设置) :
<?xml version="1.0" encoding="utf-8"?>


<configuration>
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DevelopmentEnvironmentManager.WPF.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
</configSections>
<applicationSettings>
<DevelopmentEnvironmentManager.WPF.Properties.Settings>
<setting name="SqliteDbFilePath" serializeAs="String">
<value>Database.db</value>
</setting>
<setting name="BackgroundColor" serializeAs="String">
<value>White</value>
</setting>
<setting name="TextColor" serializeAs="String">
<value>Black</value>
</setting>
</DevelopmentEnvironmentManager.WPF.Properties.Settings>
</applicationSettings>
</configuration>

注意: 将“ WPF 开发环境经理”替换为应用程序的名称。

此外,您还可以转到项目的“属性”并添加“设置”。设计器: Project settings 这将为您的项目添加方便的设计器,因此您不必手动编辑 XML: Location of the file in Solution exporer Settings designer in action

要从代码中访问设置——只需保存并关闭所有配置编辑器,构建应用程序并访问静态 Propeties (同样,不要忘记更改名称空间中的应用程序名称) :

string databasePath = DevelopmentEnvironmentManager.WPF.Properties.Settings.Default.SqliteDbFilePath;

Accessing settings from code