用简单的语法在C#中配置文件

本文关键字:配置文件 语法 简单 | 更新日期: 2023-09-27 18:22:21

我正在构建一个C#(WPF)应用程序,我想使用一个简单的配置来定义文件路径。其目的是让用户能够轻松读取和/或修改配置文件,而无需学习任何复杂的语法(或样板),并使用简单的文本编辑器即可完成。我一直在阅读有关App.config文件的内容,据我所知,手动修改它确实很复杂。

过去,在Windows和Linux(甚至今天)中,有一些非常简单的Key=Value文件正是我所习惯的——然而,我发现C#对INI文件读取/解析没有任何内置支持。

不熟悉语法的用户可以轻松修改App.config文件吗?如果没有,还有什么简单的选择吗?

用简单的语法在C#中配置文件

为了便于编辑,并从整体上消除文件的复杂性,您可以将appSettings部分拆分为一个单独的文件,从app.config…中引用

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <configSections>
      <!- stuff in here -->
    </configSections>
    <appSettings configSource="myCustomisableSettings.config" />
  </Configuration>

单独的文件应该是这样的。

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add key="FirstPathKey" value="FirstPath" />
  <add key="SecondPathKey" value="SecondPath" />
</appSettings>

对于这种情况,无论使用app.config还是web.config,都有一个appsetting的部分,它可以包含用于存储信息的键/值对,例如文件路径等,这些信息很容易修改和读取:

<configuration>
    <appSettings>
       <add key="myFilePath" value="pathToFile" />
    </appSettings>
....
</configuration>

您可以根据需要在appSettings中添加任意多的节

App.config文件很容易修改。以下是具有自定义值的标准App.config。

<!-- Start Ignore here -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
    </startup>
  <!-- End ignore here, the below is what you want -->
  <appSettings>
    <add key="myCustomPath" value="C:'Path'To'Something"/> <!-- The user can edit this value -->                   
  </appSettings>
</configuration>

正如您所看到的,用户所要做的就是更改appSettings节点下的value。就这么简单。

然后要访问(代码中的)值,您所要做的就是调用ConfigurationManager:

var path = ConfigurationManager.AppSettings["myCustomPath"];