忽略Nini中的注释

时间:2015-02-26 20:35:44

标签: c# nini

是否有可能';'只有当它位于同等侧的右侧时才能区分注释?

我有以下INI文件:

  

一些应该被忽略的评论

     

[段]

     

键=值1;值2;值2

使用以下代码,Nini将删除value2; value3,因为它被视为注释:

            using (TextReader tr = new StreamReader(iniFile))
            {
                IniDocument doc = new IniDocument(tr);
                foreach (DictionaryEntry entry in doc.Sections)
                {
                    string key = (string)entry.Key;
                    IniSection section = (IniSection)entry.Value;
                    if (section.Contains("key"))
                    {
                        // ... do stuff
                    }
                }
            }

当然,我可以做类似

的事情
IniReader ir = new IniReader(tr);
ir.SetCommentDelimiters(new char[] { '!' });
IniDocument doc = new IniDocument(ir);

但随后初始评论也将被视为配置文件并导致错误(“expecting =”)。

1 个答案:

答案 0 :(得分:1)

快速扫描代码会显示您可以使用的一些有用属性:

result.AcceptCommentAfterKey = false;
result.SetCommentDelimiters (new char[] { ';', '#' });

将AcceptCommentAfterKey设置为false可能会对您有所帮助吗?否则,您可以覆盖注释分隔符,并将用于分隔注释的符号替换为您想要的任何内容。