前面一篇文章简单的介绍了中间件的应用
下面编写一个自定义的中间件类库,并加入中间件参数以及引入日志记录中间件的异常
下面来看下中间件的构造,参数可以自定义 这里我定义了一个参数类
编写中间件需要引入
Owin
Microsoft.Owin;
中间件类需要继承类:OwinMiddleware
/// <summary> /// 自定义的中间件 /// </summary> public class CustomMiddleware : OwinMiddleware { CustomMiddlewareParameters _parameter; public CustomMiddleware(OwinMiddleware next, CustomMiddlewareParameters parameter) : base(next) { _parameter = parameter; } public override Task Invoke(IOwinContext c) { if (Next != null) { try { var cookie = c.Request.Cookies.ToList(); string allcookie = string.Empty; string allenvi = string.Empty; foreach (var cok in cookie) { allcookie += cok.Key + "---------------" + cok.Value + "<br />"; c.Environment.Add(cok.Key, cok.Value); } foreach (var envi in c.Environment) { allenvi += envi.Key + "---------------" + envi.Value + "<br />"; } var msg = Encoding.UTF8.GetBytes(allcookie + "<br /><br /><br /><br /><br /><br />" + allenvi); c.Response.ContentType = "text/html; charset=utf-8"; c.Response.Write(msg, 0, msg.Length); //处理操作 return Next.Invoke(c); } catch (Exception ex) { _parameter.logs.Error(ex.Message); } } return Task.FromResult<int>(0); } }