public void AddArguments(string[] args) { ArgumentEnum[] argumentsEnum = typeof(ArgumentEnum).GetArray <ArgumentEnum>(); IEnumerable <ArgumentAttribute> argumentAttributes = argumentsEnum.GetArgumentAttributes(); string[] argumentsKeys = argumentAttributes.GetKeys(); for (int i = 0; i < args.Length; i++) { if (!args.IsLast(i)) { if (argumentsKeys.Contains(args[i]) && !argumentsKeys.Contains(args[i + 1])) { string key = args[i]; string value = args[i + 1]; int indexOfKey = Array.IndexOf(argumentsKeys, key); ArgumentEnum enumOfKey = argumentsEnum[indexOfKey]; if (!_arguments.TryAdd(enumOfKey, value)) { _arguments[enumOfKey] = value; } } } } ArgumentEnum?argumentMissing = _arguments.ValidateArgumentsRequerid(); if (argumentMissing.HasValue) { throw new ArgumentException(string.Format("{0} was not specified", argumentMissing.Value.ToString())); } }
public string GetValue(ArgumentEnum @enum) { return(_arguments.ContainsKey(@enum) ? _arguments[@enum] : string.Empty); }