C#ini-parser问题

时间:2013-04-26 19:49:52

标签: c# winforms visual-studio-2010 ini

我发现C#没有直接支持ini文件,所以我继续徘徊,发现了以下名为ini-parser的库。用法显示了一个非常简单的示例,但由于某种原因,我不能让Visual Studio 2010喜欢它。如果我在他们的网页上完全从维基中复制以下内容:

        IniParser.FileIniDataParser parser = new FileIniDataParser();
    IniData parsedData = parser.LoadFile("TestIniFile.ini");

我收到以下错误,parser的{​​{1}}部分带有下划线并出现以下错误:

  

错误1字段初始值设定项无法引用非静态字段,   方法或财产   'WindowsFormsApplication1.Form1.parser'C:\ Users \ Support \ Documents \ Visual   工作室   2010 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Form1.cs 28 30 WindowsFormsApplication1

我不知道该说些什么,或者如何解决它。其他人可以提出建议/解决方案吗?

2 个答案:

答案 0 :(得分:3)

错误消息基本上是说您不能在类的字段初始值设定项(parser的初始值设定项)中使用parsedData(另一个字段)。

你必须把这个逻辑放在构造函数中:

FileIniDataParser parser = new FileIniDataParser();
IniData parsedData;

public Form1()
{
    InitializeComponent();
    parsedData = parser.LoadFile("TestIniFile.ini");
}

答案 1 :(得分:3)

您正尝试在字段初始值设定项中执行此操作。您不允许在实例字段initalizer中引用this。改为在构造函数中执行:

private readonly IniData configuration;

public Form1()
{
    InitializeComponent();
    IniParser.FileIniDataParser parser = new FileIniDataParser();
    configuration = parser.LoadFile("TestIniFile.ini");
}

或者只是内联而没有单独的解析器变量:

private readonly IniData configuration =
    new FileIniDataParser().LoadFile("TestIniFile.ini");

(我假设你实际上并不需要其他任何解析器,因此使用一个字段毫无意义。)