public MethodHandler(MethodInfo method, AbstractSqlAttribute sqlAttribute, DatabaseClientContext context) { Type resultType; _method = method; _sqlAttribute = sqlAttribute; _isUpdate = _sqlAttribute is SqlUpdateAttribute; _context = context; var returnType = _method.ReturnType; if (returnType == typeof(Task)) { resultType = typeof(void); _isAsync = true; } else if (returnType.BaseType == typeof(Task) && returnType.IsGenericType) { resultType = returnType.GenericTypeArguments[0]; _isAsync = true; } else { resultType = returnType; _isAsync = false; } _taskConverter = _context.TaskConverterFactory.CreateTaskConverter(resultType); _isResultEnumerable = resultType.IsGenericType && resultType.Namespace == "System.Collections.Generic" && resultType.Name == "IEnumerable`1"; if (_isResultEnumerable) { _effectiveType = resultType.GenericTypeArguments[0]; } else { _effectiveType = resultType; } }
public DatabaseClient(DatabaseClientContext context) { _type = typeof(T); _context = context; }