Merge pull request #6249 from OrchardCMS/issue/infoset-nullable-enums

Added handling of nullable enums.
This commit is contained in:
Sébastien Ros
2016-01-14 12:14:16 -08:00

View File

@@ -214,7 +214,9 @@ namespace Orchard.ContentManagement {
return decimalValue.ToString(CultureInfo.InvariantCulture);
}
if (type.IsEnum) {
var underlyingType = Nullable.GetUnderlyingType(type) ?? type;
if (underlyingType.IsEnum) {
return value.ToString();
}
@@ -275,8 +277,10 @@ namespace Orchard.ContentManagement {
return (T)(object)decimal.Parse(value, CultureInfo.InvariantCulture);
}
if (type.IsEnum) {
return (T)Enum.Parse(type, value);
var underlyingType = Nullable.GetUnderlyingType(type) ?? type;
if (underlyingType.IsEnum) {
return (T)Enum.Parse(underlyingType, value);
}
throw new NotSupportedException(String.Format("Could not handle type {0}", type.Name));