.NET框架中是否有可以读写标准.ini文件的类:

[Section]
<keyname>=<value>
...

Delphi有TIniFile组件,我想知道是否有类似的c# ?


当前回答

我想介绍一个完全用c#创建的IniParser库,所以它不包含任何操作系统的依赖关系,这使得它与Mono兼容。MIT许可的开源软件——所以它可以在任何代码中使用。

你可以在GitHub中查看源代码,它也可以作为NuGet包使用

它是高度可配置的,使用起来非常简单。

很抱歉我不要脸的插播,但我希望它能对那些重新审视这个答案的人有所帮助。

其他回答

INI是一个用于INI文件操作的nuget打包类。它支持读/写,包括注释-写时保留注释。它似乎相当受欢迎,经过测试,易于使用。它也是完全免费和开源的。

免责声明:我是花生酱ini的作者。

CodeProject的这篇文章“一个使用c#的INI文件处理类”应该会有所帮助。

作者创建了一个c#类“Ini”,它公开了KERNEL32.dll中的两个函数。这些函数是:WritePrivateProfileString和GetPrivateProfileString。您需要两个命名空间:System.Runtime.InteropServices和System.Text。

使用Ini类的步骤

在项目名称空间定义中添加

using INI;

像这样创建一个INIFile

INIFile ini = new INIFile("C:\\test.ini");

使用IniWriteValue向section中的特定键写入新值,或使用IniReadValue从特定section中的键读取值。

注意:如果你是从头开始,你可以阅读这篇MSDN文章:如何:将应用程序配置文件添加到c#项目。这是配置应用程序的一种更好的方式。

通常,当您使用c#和. net框架创建应用程序时,您不会使用INI文件。更常见的方法是将设置存储在基于xml的配置文件或注册表中。 但是,如果您的软件与遗留应用程序共享设置,则可能更容易使用其配置文件,而不是将信息复制到其他地方。

. net框架不支持直接使用INI文件。但是,您可以使用带有平台调用服务(P/Invoke)的Windows API函数来写入和读取文件。在本链接中,我们创建了一个表示INI文件的类,并使用Windows API函数来操作它们。 请点击下面的链接。

读取和写入INI文件

. net框架的创建者希望您使用基于xml的配置文件,而不是INI文件。所以不,没有内置的机制来读取它们。

不过,也有第三方的解决方案。

INI处理程序可以作为NuGet包获得,例如INI Parser。 您可以编写自己的INI处理程序,这是一种老式的、费力的方法。它为您提供了对实现的更多控制,可以用于坏的方面,也可以用于好的方面。例如,一个INI文件处理类使用c#, P/Invoke和Win32。

如果您只需要读访问而不需要写访问,并且您正在使用microsoft . extensions . configuration(默认情况下与ASP. extension . configuration捆绑在一起)。你可以使用NuGet包Microsoft.Extensions.Configuration.Ini将ini文件导入到你的配置设置中。

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddIniFile("SomeConfig.ini", optional: false);
    Configuration = builder.Build();
}