예제 #1
0
        public void BuildTaskResultProvider()
        {
            var provider = MethodInvokerBuilder.BuildTaskResultProvider(typeof(int));

            Assert.Equal(10, provider(Task.FromResult(10)));
            Assert.Equal(11, provider(Task.FromResult(11)));
        }
예제 #2
0
 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);
     }
 }