コード例 #1
0
        public object Retrieve(KeyValuePair <string, string> keyValuePair, Type targetType, Type propertyType)
        {
            var value = keyValuePair.Value;

            if (propertyType.IsEnum)
            {
                if (value == null)
                {
                    throw new InvalidOperationException("No enum with value {null} found");
                }

                if (value.Length == 0)
                {
                    throw new InvalidOperationException("No enum with value {empty} found");
                }
            }
            else
            {
                if (string.IsNullOrEmpty(value))
                {
                    return(null);
                }

                propertyType = propertyType.GetGenericArguments()[0];
            }

            try
            {
                return(StepArgumentTypeConverter.ConvertToAnEnum(propertyType, value));
            }
            catch
            {
                throw new InvalidOperationException($"No enum with value {value} found");
            }
        }
コード例 #2
0
ファイル: EnumConverter.cs プロジェクト: techtalk/CodingDojos
        internal static Enum ConvertToEnum(string value, Type enumType)
        {
            var enumTypeInternal = GetEnumTypeFromNullableEnum(enumType);

            switch (enumTypeInternal)
            {
            case var type when TryGetValueFromDisplayNameAttribute(value, type, out var result): return(result);

            default:
                return((Enum)StepArgumentTypeConverter.ConvertToAnEnum(enumTypeInternal, value));
            }
        }
コード例 #3
0
 private object ConvertTheStringToAnEnum(string value, Type enumType)
 {
     return(StepArgumentTypeConverter.ConvertToAnEnum(GetTheEnumType(enumType), PrepareValue(value)));
 }
コード例 #4
0
 private static object ConvertTheStringToAnEnum(string value, Type enumType)
 {
     return(StepArgumentTypeConverter.ConvertToAnEnum(GetTheEnumType(enumType), value));
 }