public CommandLineSettingsReader(IEnumerable <string> loadFlags)
        {
            var handler = new CmdLineSectionHandler();

            var args = Environment.GetCommandLineArgs().AsCleanedArgs();

            // TODO: scan for types with Alias attribute and find ones that match the provided name
            // TODO: configurable probing paths, maybe just for assemblies not found?

            foreach (var arg in args)
            {
                string loadFlag = loadFlags.FirstOrDefault(f => arg.StartsWith(f, StringComparison.InvariantCultureIgnoreCase));
                if (loadFlag != null)
                {
                    string chomped = arg.Substring(loadFlag.Length);
                    handler.Add(new LoadArg(chomped));
                }
            }

            SectionHandler = handler;


            // TODO: property config
            // TODO: property AutoAlias via CamelCase initials (no need for AliasAttribute)
        }
        public CommandLineSettingsReader(IEnumerable<string> loadFlags)
        {
            var handler = new CmdLineSectionHandler();

            var args = Environment.GetCommandLineArgs().AsCleanedArgs();

            // TODO: scan for types with Alias attribute and find ones that match the provided name
            // TODO: configurable probing paths, maybe just for assemblies not found?

            foreach (var arg in args)
            {
                string loadFlag = loadFlags.FirstOrDefault(f => arg.StartsWith(f, StringComparison.InvariantCultureIgnoreCase));
                if (loadFlag != null)
                {
                    string chomped = arg.Substring(loadFlag.Length);
                    handler.Add(new LoadArg(chomped));
                }
            }

            SectionHandler = handler;

            // TODO: property config
            // TODO: property AutoAlias via CamelCase initials (no need for AliasAttribute)
        }