Преглед на файлове

modify how to determine complex types.

master
yangxiaodong преди 7 години
родител
ревизия
8f9dad6cb4
променени са 1 файла, в които са добавени 20 реда и са изтрити 1 реда
  1. +20
    -1
      src/DotNetCore.CAP/Infrastructure/Helper.cs

+ 20
- 1
src/DotNetCore.CAP/Infrastructure/Helper.cs Целия файл

@@ -72,7 +72,26 @@ namespace DotNetCore.CAP.Infrastructure

public static bool IsComplexType(Type type)
{
return !TypeDescriptor.GetConverter(type).CanConvertFrom(typeof(string));
return !CanConvertFromString(type);
}

private static bool CanConvertFromString(Type destinationType)
{
destinationType = Nullable.GetUnderlyingType(destinationType) ?? destinationType;
return IsSimpleType(destinationType) ||
TypeDescriptor.GetConverter(destinationType).CanConvertFrom(typeof(string));
}

private static bool IsSimpleType(Type type)
{
return type.GetTypeInfo().IsPrimitive ||
type.Equals(typeof(decimal)) ||
type.Equals(typeof(string)) ||
type.Equals(typeof(DateTime)) ||
type.Equals(typeof(Guid)) ||
type.Equals(typeof(DateTimeOffset)) ||
type.Equals(typeof(TimeSpan)) ||
type.Equals(typeof(Uri));
}
}
}

Зареждане…
Отказ
Запис