private ITypeHandler ResolveTypeHandler(TypeHandlerFactory typeHandlerFactory, Type parameterClassType, string propertyName, string propertyType, string dbType) { if (parameterClassType == null) { return(typeHandlerFactory.GetUnkownTypeHandler()); } if (typeof(IDictionary).IsAssignableFrom(parameterClassType)) { if ((propertyType == null) || (propertyType.Length == 0)) { return(typeHandlerFactory.GetUnkownTypeHandler()); } try { Type type = TypeUtils.ResolveType(propertyType); return(typeHandlerFactory.GetTypeHandler(type, dbType)); } catch (Exception exception) { throw new ConfigurationException("Error. Could not set TypeHandler. Cause: " + exception.Message, exception); } } if (typeHandlerFactory.GetTypeHandler(parameterClassType, dbType) != null) { return(typeHandlerFactory.GetTypeHandler(parameterClassType, dbType)); } Type memberTypeForGetter = ObjectProbe.GetMemberTypeForGetter(parameterClassType, propertyName); return(typeHandlerFactory.GetTypeHandler(memberTypeForGetter, dbType)); }
/// <summary> /// Resolve TypeHandler /// </summary> /// <param name="parameterClassType"></param> /// <param name="propertyName"></param> /// <param name="propertyType"></param> /// <param name="dbType"></param> /// <param name="typeHandlerFactory"></param> /// <returns></returns> private ITypeHandler ResolveTypeHandler(TypeHandlerFactory typeHandlerFactory, Type parameterClassType, string propertyName, string propertyType, string dbType) { ITypeHandler handler = null; if (parameterClassType == null) { handler = typeHandlerFactory.GetUnkownTypeHandler(); } else if (typeof(IDictionary).IsAssignableFrom(parameterClassType)) { if (propertyType == null || propertyType.Length == 0) { handler = typeHandlerFactory.GetUnkownTypeHandler(); } else { try { Type typeClass = TypeUtils.ResolveType(propertyType); handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType); } catch (Exception e) { throw new ConfigurationException("Error. Could not set TypeHandler. Cause: " + e.Message, e); } } } else if (typeHandlerFactory.GetTypeHandler(parameterClassType, dbType) != null) { handler = typeHandlerFactory.GetTypeHandler(parameterClassType, dbType); } else { Type typeClass = ObjectProbe.GetMemberTypeForGetter(parameterClassType, propertyName); handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType); } return(handler); }