tnblog
首页
视频
资源
登录

中间件

4109人阅读 2019/12/24 11:22 总访问:37374 评论:0 收藏:0 手机
分类: .NET Core

今天我们记录一下中间件 ,看到下面那些代码, 我们就知道了:


 // 处理静态文件中间件
            app.UseStaticFiles();
            app.UseCookiePolicy();
            // 启动ids4中间件
            app.UseIdentityServer();
            // 使用自己的中间件
            app.UseMyIp();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

我们弄一个类,写自己的中间件如:


public class MyIPMiddleware
    {
        private readonly RequestDelegate _next;
        // 写日志
        private readonly ILogger _logger;
        public MyIPMiddleware(RequestDelegate next, ILoggerFactory logger)
        {
            _next = next;
            _logger = logger.CreateLogger<MyIPMiddleware>();
        }
        /// <summary>
        /// 执行的方法
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context)
        {
            _logger.LogWarning("执行自己的中间件,获取IP地址.....");
            //执行超作
            _logger.LogError("My Ip:" + context.Connection.RemoteIpAddress.ToString());
            //执行下一个中间件
            await _next.Invoke(context);
        }
    }


我们可以为了看着厉害一点,我们还可以在写一个类来封装它:


public static IApplicationBuilder UseMyIp(this IApplicationBuilder app)
        {
            //链式编程
            return app.UseMiddleware<MyIPMiddleware>();
        }

这样我们自己写的中间件和官方的一样了....

评价
黑发不知勤学早,白发方悔读书迟......
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术