我在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中使用这样的配置文件?
答案 0 :(得分:68)
您必须引用GAC中的System.Configuration
程序集。
ConfigurationManager
的使用不是特定于WPF的:它是访问任何类型应用程序的配置信息的特权方式。
有关详细信息,请参阅MSDN
希望它有所帮助!
和Cédric
答案 1 :(得分:18)
在我的情况下,我按照以下步骤进行操作
的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添加到我的解决方案
在顶部的文件中使用System.Configuration语句添加
然后使用以下声明
string queuePath = ConfigurationManager.AppSettings["POCPublishSubscribeQueueName"].ToString();
答案 2 :(得分:16)
在app.config
中,将您的appsetting更改为
<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()
HTH
答案 3 :(得分:6)
您必须在解决方案中添加对System.configuration
的引用。另外,请加using System.Configuration;
。完成后,您将可以访问所有配置设置。
答案 4 :(得分:5)
您必须通过资源管理器引用System.Configuration
(不仅要附加using System.Configuration
)。然后你可以写:
string xmlDataDirectory =
System.Configuration.ConfigurationManager.AppSettings.Get("xmlDataDirectory");
使用VS2010测试(感谢www.developpez.net)。 希望这会有所帮助。
答案 5 :(得分:2)
您可以通过DotNetConfig.xsd
文件的属性将配置文件架构更改回 app.config
。要查找所需模式的目标,可以按名称搜索或创建WinForms应用程序,添加项目配置文件,在其属性中,您将找到文件的完整路径。
答案 6 :(得分:1)
这也有效
WpfApplication1.Properties.Settings.Default["appsetting"].ToString()
答案 7 :(得分:-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()