private void Parse(TextReader reader) { StringBuilder scope = new StringBuilder(); IProcessContext context = null; // create your context here. string line = reader.ReadLine(); while (line != null) { IMyHandler handler = null; if (!_handlers.TryGetValue(line[0], out handler)) { handler = _defaultHandler; } handler.Process(context, line); line = reader.ReadLine(); } }