/// <summary> /// 生成ApiReturnDescriptor /// </summary> /// <param name="method">方法信息</param> /// <returns></returns> private static ApiReturnDescriptor GetReturnDescriptor(this MethodInfo method) { var returnAttribute = method.FindDeclaringAttribute <IApiReturnAttribute>(true); if (returnAttribute == null) { returnAttribute = new AutoReturnAttribute(); } var dataType = method.ReturnType.GetGenericArguments().FirstOrDefault(); var descriptor = new ApiReturnDescriptor(); descriptor.Attribute = returnAttribute; descriptor.ReturnType = method.ReturnType; descriptor.DataType = dataType; descriptor.IsITaskDefinition = method.ReturnType.GetGenericTypeDefinition() == typeof(ITask <>); descriptor.ITaskCtor = ApiTask.GetITaskConstructor(dataType); return(descriptor); }
/// <summary> /// 返回的Task(Of T)的T类型描述 /// </summary> /// <param name="dataType">数据类型</param> public DataTypeDescriptor(Type dataType) { this.Type = dataType; this.ITaskConstructor = ApiTask.GetITaskConstructor(dataType); this.IsHttpResponseWrapper = dataType.IsInheritFrom <HttpResponseWrapper>(); }