예제 #1
0
 private void VerifyArguments()
 {
     Debug.WriteLine(SyncMethod.DelegateArgumentTypes.ToString2());
     Debug.WriteLine(AllArguments.ToString2());
     if (!SyncMethod.DelegateArgumentTypes.SequenceEqual(AllArguments.Select(o => o.GetType())))
     {
         //TODO: improve the exception message
         throw new Exception("Arguments don't match the signature of the method");
     }
 }
예제 #2
0
 public CommandArgs(IEnumerable <string> args)
 {
     args.ShouldNotBeNullOrEmpty("args");
     Command      = args.First();
     AllArguments = args.Skip(1).ToList();
     Arguments    = AllArguments.Where(IsNotFlag).ToList();
     Flags        = AllArguments.Where(IsSingleFlag).ToList();
     DoubleFlags  = AllArguments.Where(IsDoubleFlag).ToList();
     Help         = DoubleFlags.Any(f => f.EqualsIgnoreCase(HelpFlag));
 }
예제 #3
0
        /// <summary>
        /// Get argument as string. If no argument given for parameter name, defaultValue will be returned.
        /// </summary>
        /// <param name="parameterName"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static string GetArgument(string parameterName, string defaultValue = null)
        {
            string ret = null;

            if (!AllArguments.TryGetValue(parameterName, out ret))
            {
                Dictionary <string, string> tempStacked = null;
                if (StackedArguments.TryGetValue(parameterName, out tempStacked) && tempStacked.Count == 1)
                {
                    foreach (var entry in tempStacked)
                    {
                        return(entry.Value);
                    }
                }
                return(defaultValue);
            }
            return(ret);
        }