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

Edw*_*uay 63 .net c# wpf configuration

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appsettings>
    <add key="xmlDataDirectory" value="c:\testdata"/>
  </appsettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后我尝试用这个读取值:

string xmlDataDirectory = ConfigurationSettings.AppSettings.Get("xmlDataDirectory");
Run Code Online (Sandbox Code Playgroud)

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

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

Céd*_*Rup 70

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

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

有关详细信息,请参阅MSDN

希望能帮助到你 !

塞德里克

  • 是的,我必须将名称从appsettings更改为appSettings,将System.Configuration引用添加到我的项目,然后使用它:string xmlDataDirectory = ConfigurationManager.AppSettings.Get("xmlDataDirectory"); (8认同)

Zig*_*ler 19

在我的情况下,我按照以下步骤

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>
Run Code Online (Sandbox Code Playgroud)

将System.Configuartion添加到我的解决方案中

在顶部的文件中使用System.Configuration语句添加

然后使用下面的声明

string queuePath = ConfigurationManager.AppSettings["POCPublishSubscribeQueueName"].ToString();
Run Code Online (Sandbox Code Playgroud)


Ana*_*hah 17

在您的app.config,将您的appsetting更改为

<applicationSettings>
    <WpfApplication1.Properties.Settings>
        <setting name="appsetting" serializeAs="String">
            <value>c:\testdata.xml</value>
        </setting>
    </WpfApplication1.Properties.Settings>
</applicationSettings>
Run Code Online (Sandbox Code Playgroud)

然后,在代码隐藏中,

string xmlDataDirectory = WpfApplication1.Properties.Settings.Default.appsetting.ToString()
Run Code Online (Sandbox Code Playgroud)

HTH


小智 6

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


小智 6

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

string xmlDataDirectory = 
    System.Configuration.ConfigurationManager.AppSettings.Get("xmlDataDirectory");
Run Code Online (Sandbox Code Playgroud)

使用VS2010测试(感谢www.developpez.net).希望这可以帮助.


Lao*_*aoR 5

Microsoft 上有一篇关于应用程序设置的好文章。据此,您需要:

  • 手动创建 App.config 文件(从项目上下文菜单 -> 添加 -> 新项目... -> 应用程序配置文件。) 用于添加应用程序配置文件的对话框窗口
  • 在那里添加所需的部分(我仅使用应用程序范围设置):
<?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>
Run Code Online (Sandbox Code Playgroud)

注意:将“ DevelopmentEnvironmentManager.WPF ”替换为您的应用程序的名称。

此外,您可以转到项目的“属性”并添加“Settings.Designer”: 项目设置 这将为您的项目添加方便的设计器,因此您不必手动编辑 XML: 文件在解决方案导出器中的位置 设置设计器的实际应用

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

string databasePath = DevelopmentEnvironmentManager.WPF.Properties.Settings.Default.SqliteDbFilePath;
Run Code Online (Sandbox Code Playgroud)

从代码访问设置