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


70

我在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中使用这样的配置文件?


是否有一种简便的方法可以在appsettings.json不更新IConfiguration的情况下从文件中获取设置?因为启动页面不是已经为我们做到了吗?也许注入到MainWindow的代码背后?
罗德

Answers:


76

您必须引用System.ConfigurationGAC中的程序集。

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

请参阅Microsoft Docs-ConfigurationManager以获取更多信息。


8
是的,就是这样,我不得不将名称从appsettings更改为appSettings,将System.Configuration引用添加到我的项目中,然后使用此名称:string xmlDataDirectory = ConfigurationManager.AppSettings.Get(“ xmlDataDirectory”);
爱德华·坦格

25

就我而言,我按照以下步骤操作。

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();

17

在中app.config,将您的应用设置更改为:

<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()

6

您必须System.Configuration通过资源管理器进行引用(不仅是append using System.Configuration)。然后您可以编写:

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

经过VS2010的测试(感谢www.developpez.net)。希望这可以帮助。


是的,在“引用”上单击鼠标右键,然后从“引用管理器”中添加System.Configuration。谢谢!
midoriha_senpai

6

您必须System.configuration在解决方案中添加对的引用。另外,包括using System.Configuration;。完成此操作后,您将可以访问所有配置设置。


2

您可以将配置文件架构更改回DotNetConfig.xsd通过app.config文件的属性。要查找所需模式的目标,可以按名称搜索它或创建WinForms应用程序,添加以投影配置文件,并在其属性中找到文件的完整路径。


1

这也有效

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

-2

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

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

'Write Settings
My.Settings.my_key = value
My.Settings.Save()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.