From afa87bf8573590e5ee02fc7dd434e6f8d133c11c Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Fri, 9 May 2014 09:11:21 -0700 Subject: [PATCH] #22 - Make UseMiddleware look for any Invoke method. --- .../ContainerExtensions.cs | 7 ++++++- src/Microsoft.AspNet.RequestContainer/project.json | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.AspNet.RequestContainer/ContainerExtensions.cs b/src/Microsoft.AspNet.RequestContainer/ContainerExtensions.cs index 8289754ef5..df630d1794 100644 --- a/src/Microsoft.AspNet.RequestContainer/ContainerExtensions.cs +++ b/src/Microsoft.AspNet.RequestContainer/ContainerExtensions.cs @@ -27,6 +27,11 @@ namespace Microsoft.AspNet.Builder { public static class ContainerExtensions { + public static IBuilder UseMiddleware(this IBuilder builder, params object[] args) + { + return builder.UseMiddleware(typeof(T), args); + } + public static IBuilder UseMiddleware(this IBuilder builder, Type middleware, params object[] args) { // TODO: move this ext method someplace nice @@ -34,7 +39,7 @@ namespace Microsoft.AspNet.Builder { var typeActivator = builder.ApplicationServices.GetService(); var instance = typeActivator.CreateInstance(builder.ApplicationServices, middleware, new[] { next }.Concat(args).ToArray()); - var methodinfo = middleware.GetTypeInfo().GetDeclaredMethod("Invoke"); + var methodinfo = middleware.GetRuntimeMethods().Single(info => info.Name.Equals("Invoke")); return (RequestDelegate)methodinfo.CreateDelegate(typeof(RequestDelegate), instance); }); } diff --git a/src/Microsoft.AspNet.RequestContainer/project.json b/src/Microsoft.AspNet.RequestContainer/project.json index 786d98c8c2..91bf41f1fa 100644 --- a/src/Microsoft.AspNet.RequestContainer/project.json +++ b/src/Microsoft.AspNet.RequestContainer/project.json @@ -13,6 +13,7 @@ "System.Diagnostics.Debug": "4.0.10.0", "System.Linq": "4.0.0.0", "System.Reflection": "4.0.10.0", + "System.Reflection.Extensions": "4.0.0.0", "System.Runtime": "4.0.20.0", "System.Runtime.Extensions": "4.0.10.0", "System.Threading": "4.0.0.0",