コード例 #1
0
ファイル: IniFile.cs プロジェクト: MyKaez/nc.common
        private void Handle(LinePeeker peeker)
        {
            var line   = peeker.PeekLine() ?? string.Empty;
            var method = LineAnalyzers.FirstOrDefault(a => a.Key(line));

            if (method.Key == null || method.Value == null)
            {
                throw new InvalidOperationException();
            }

            var childInis = _children.OfType <IniFile>().ToArray();
            var ini       = childInis.Any() ? childInis.Last() : this;

            method.Value(ini, peeker);
        }
コード例 #2
0
ファイル: IniFile.cs プロジェクト: MyKaez/nc.common
        public static IniFile Parse(string content)
        {
            var ini = new IniFile();

            using (var reader = new StringReader(content))
            {
                var peeker = new LinePeeker(reader);

                while (reader.Peek() >= 0)
                {
                    ini.Handle(peeker);
                }
            }

            return(ini);
        }