From 98f4212915fb5c6ac615b0b21fca43dba6f5127c Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Wed, 30 Apr 2014 10:53:33 -0700 Subject: [PATCH] #20 - Add Use extension for inline middleware. --- .../Extensions/UseExtensions.cs | 27 +++++++++++++++++++ .../Microsoft.AspNet.Abstractions.kproj | 1 + 2 files changed, 28 insertions(+) create mode 100644 src/Microsoft.AspNet.Abstractions/Extensions/UseExtensions.cs diff --git a/src/Microsoft.AspNet.Abstractions/Extensions/UseExtensions.cs b/src/Microsoft.AspNet.Abstractions/Extensions/UseExtensions.cs new file mode 100644 index 0000000000..698b19ca5c --- /dev/null +++ b/src/Microsoft.AspNet.Abstractions/Extensions/UseExtensions.cs @@ -0,0 +1,27 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNet.Abstractions; + +namespace Microsoft.AspNet +{ + public static class UseExtensions + { + /// + /// Use middleware defined in-line. + /// + /// + /// A function that handles the request or calls the given next function. + /// + public static IBuilder Use(this IBuilder app, Func, Task> middleware) + { + return app.Use(next => + { + return context => + { + Func simpleNext = () => next(context); + return middleware(context, simpleNext); + }; + }); + } + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNet.Abstractions/Microsoft.AspNet.Abstractions.kproj b/src/Microsoft.AspNet.Abstractions/Microsoft.AspNet.Abstractions.kproj index 83c250addc..0b62b9b387 100644 --- a/src/Microsoft.AspNet.Abstractions/Microsoft.AspNet.Abstractions.kproj +++ b/src/Microsoft.AspNet.Abstractions/Microsoft.AspNet.Abstractions.kproj @@ -28,6 +28,7 @@ +