Пример #1
0
 public AutoItemConfigAttribute(AutoItemConfigFlags flags = AutoItemConfigFlags.None, params object[] acceptableValues)
 {
     if (acceptableValues.Length > 0)
     {
         var avList = (flags & AutoItemConfigFlags.AVIsList) == AutoItemConfigFlags.AVIsList;
         if (!avList && acceptableValues.Length != 2)
         {
             throw new ArgumentException("Range mode for acceptableValues (flag AVIsList not set) requires either 0 or 2 params; received " + acceptableValues.Length + ".\nThe description provided was: \"" + desc + "\".");
         }
         var iType = acceptableValues[0].GetType();
         for (var i = 1; i < acceptableValues.Length; i++)
         {
             if (iType != acceptableValues[i].GetType())
             {
                 throw new ArgumentException("Types of all acceptableValues must match");
             }
         }
         var avbVariety = avList ? typeof(AcceptableValueList <>).MakeGenericType(iType) : typeof(AcceptableValueRange <>).MakeGenericType(iType);
         this.avb     = (AcceptableValueBase)Activator.CreateInstance(avbVariety, acceptableValues);
         this.avbType = iType;
     }
     this.flags = flags;
 }
Пример #2
0
 public AutoItemConfigAttribute(string desc, AutoItemConfigFlags flags = AutoItemConfigFlags.None, params object[] acceptableValues) : this(flags, acceptableValues)
 {
     this.desc = desc;
 }
Пример #3
0
 public AutoItemConfigAttribute(string name, string desc, AutoItemConfigFlags flags = AutoItemConfigFlags.None, params object[] acceptableValues) : this(desc, flags, acceptableValues)
 {
     this.name = name;
 }