Ejemplo n.º 1
0
 public bool TryGetValue(string name, out EnumObject enumObject)
 {
     enumObject = null;
     if (name == null)
     {
         return(false);
     }
     if (_closed)
     {
         return(_cachedByName.TryGetValue(name, out enumObject));
     }
     else
     {
         foreach (var value in _values)
         {
             if (value._name == name)
             {
                 enumObject = value;
                 return(true);
             }
         }
         enumObject = this.BaseDescriptor?.GetValue(name);
         return(enumObject != null);
     }
 }
Ejemplo n.º 2
0
 public bool TryGetValue(int value, out EnumObject enumObject)
 {
     enumObject = null;
     if (value == 0)
     {
         enumObject = this.DefaultValue;
         return((object)enumObject != null);
     }
     if (value < 1 || value > _maxValue)
     {
         return(false);
     }
     if (_closed)
     {
         enumObject = _cachedByValue[value - 1];
         return(true);
     }
     else
     {
         int valuesCount = _values.Count;
         if (value >= _maxValue - valuesCount + 1)
         {
             enumObject = _values[value - 1];
             return(true);
         }
         else
         {
             enumObject = this.BaseDescriptor?.GetValue(value);
             return(enumObject != null);
         }
     }
 }
Ejemplo n.º 3
0
            public EnumObject CreateValue(EnumObject value)
            {
                var retargetingConstructor = _type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, retargetingConstructorSignature, null);

                if (retargetingConstructor != null)
                {
                    return((EnumObject)retargetingConstructor.Invoke(new object[] { value }));
                }
                var baseDescriptor = this.BaseDescriptor;

                if (baseDescriptor != null)
                {
                    return(baseDescriptor.CreateValue(value));
                }
                throw new InvalidOperationException(_type + " must have a retargeting constructor.");
            }
Ejemplo n.º 4
0
 public static T AsEnum <T>(this int value, Type enumType)
     where T : EnumObject
 {
     return((T)EnumObject.ByValue(enumType, value));
 }
Ejemplo n.º 5
0
 public static T AsEnum <T>(this int value)
     where T : EnumObject
 {
     return(EnumObject.ByValue <T>(value));
 }
Ejemplo n.º 6
0
 public static T AsEnum <T>(this string name, Type enumType)
     where T : EnumObject
 {
     return((T)EnumObject.ByName(enumType, name));
 }
Ejemplo n.º 7
0
 public static T AsEnum <T>(this string name)
     where T : EnumObject
 {
     return(EnumObject.ByName <T>(name));
 }