Middleware Invoke multi parameters (#288)

This commit is contained in:
tangdf
2018-03-21 14:33:22 +08:00
committed by Tom Pallister
parent 1e34ac3eec
commit c79f1ecbf8
2 changed files with 32 additions and 4 deletions

View File

@ -94,7 +94,7 @@ namespace Ocelot.Middleware.Pipeline
private static Func<T, DownstreamContext, IServiceProvider, Task> Compile<T>(MethodInfo methodinfo, ParameterInfo[] parameters)
{
var middleware = typeof(T);
var httpContextArg = Expression.Parameter(typeof(HttpContext), "httpContext");
var httpContextArg = Expression.Parameter(typeof(DownstreamContext), "downstreamContext");
var providerArg = Expression.Parameter(typeof(IServiceProvider), "serviceProvider");
var instanceArg = Expression.Parameter(middleware, "middleware");
@ -111,8 +111,7 @@ namespace Ocelot.Middleware.Pipeline
var parameterTypeExpression = new Expression[]
{
providerArg,
Expression.Constant(parameterType, typeof(Type)),
Expression.Constant(methodinfo.DeclaringType, typeof(Type))
Expression.Constant(parameterType, typeof(Type))
};
var getServiceCall = Expression.Call(GetServiceInfo, parameterTypeExpression);