Opc.Ua.JsonDecoder.ReadEnumerated C# (CSharp) Method

ReadEnumerated() public method

Reads an enumerated value from the stream.
public ReadEnumerated ( string fieldName, System enumType ) : Enum
fieldName string
enumType System
return System.Enum
        public Enum ReadEnumerated(string fieldName, System.Type enumType)
        {
            if (enumType == null) throw new ArgumentNullException("enumType");

            Enum value = (Enum)Enum.GetValues(enumType).GetValue(0);

            object token = null;

            if (!ReadField(fieldName, out token))
            {
                return value;
            }

            string literal = token as string;

            if (literal == null)
            {
                return value;
            }

            int index = literal.LastIndexOf('_');

            if (index > 0)
            {
                int number = Convert.ToInt32(literal.Substring(index + 1), CultureInfo.InvariantCulture);
                value = (Enum)Enum.ToObject(enumType, number);
            }
            else
            {
                value = (Enum)Enum.Parse(enumType, literal, false);
            }

            return value;
        }