public void BuildTaskResultProvider() { var provider = MethodInvokerBuilder.BuildTaskResultProvider(typeof(int)); Assert.Equal(10, provider(Task.FromResult(10))); Assert.Equal(11, provider(Task.FromResult(11))); }
public ActionDescriptor(ActionMetadata metadata) { Parameters = metadata.Action.GetParameters().ToList(); ParametersTypes = Parameters.Select(p => p.ParameterType).ToArray(); _compiledLambda = MethodInvokerBuilder.Build(metadata.Action.DeclaringType, metadata.Action); _isTaskResult = typeof(Task).IsAssignableFrom(metadata.Action.ReturnType); if (_isTaskResult && metadata.Action.ReturnType.GetTypeInfo().IsGenericType) { _taskResultProvider = MethodInvokerBuilder.BuildTaskResultProvider(metadata.ResultType); } }