/// <summary>
        ///     Gets a value specified on the command line, in the form "+key" "value"
        /// </summary>
        /// <typeparam name="T">The type of the value.</typeparam>
        /// <param name="configKey">The name of the key, without the leading +, e.g. "key"</param>
        /// <returns>The value of the key</returns>
        /// <exception cref="Exception">Thrown when the value of the given configuration is not found.</exception>
        public T GetCommandLineValue<T>(string configKey)
        {
            T configValue;
            if (CommandLineUtil.TryGetConfigValue(commandLineDictionary, configKey, out configValue))
            {
                return configValue;
            }

            throw new Exception(string.Format("Could not find the configuration value for '{0}'.", configKey));
        }
        /// <summary>
        ///     Gets a value specified on the command line, in the form "+key" "value"
        /// </summary>
        /// <typeparam name="T">The type of the value.</typeparam>
        /// <param name="configKey">The name of the key, without the leading +, e.g. "key"</param>
        /// <param name="defaultValue">The value to return if the key was not specified on the command line.</param>
        /// <returns>The value of the key, or defaultValue if the key was not specified on the command line.</returns>
        public T GetCommandLineValue<T>(string configKey, T defaultValue)
        {
            T configValue;
            if (CommandLineUtil.TryGetConfigValue(commandLineDictionary, configKey, out configValue))
            {
                return configValue;
            }

            return defaultValue;
        }