tnblog
首页
视频
资源
登录

.Net Core中的中间件实战

4547人阅读 2019/3/3 18:40 总访问:2615314 评论:0 收藏:0 手机
分类: .net后台框架

什么是中间件?


凡是app点出来的都是中间件,如下图所示

今天就来制作一下中间件

1,创建一个.netcore的web空项目


2,创建一个RequesIPMiddleware类


public class RequesIPMiddleware
{
    private readonly RequestDelegate _next;

    private readonly ILogger _logger;
    public RequesIPMiddleware(RequestDelegate next ,ILoggerFactory logger)
    {
        _next = next;
        _logger = logger.CreateLogger<RequesIPMiddleware>();
    }
    /// <summary>
    /// 执行的方法
    /// </summary>
    /// <param name="context"></param>
    /// <returns></returns>
    public async Task Invoke(HttpContext context)
    {
       //执行超作
        _logger.LogInformation("My Ip:" + context.Connection.RemoteIpAddress.ToString());
        //执行下一个中间件
        await _next.Invoke(context);
    }

}


3,创建一个RequestPExtensions.cs类


public static class RequestPExtensions
{
    public static IApplicationBuilder UseRequestIP(this IApplicationBuilder builder)
    {
        return builder.UseMiddleware<RequesIPMiddleware>();
    }
}


这样一个中间件就算完成了!

4,调用中间件 UseRequestIP

public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory iLoggerFactory)
{
    iLoggerFactory.AddConsole(minLevel: LogLevel.Information);
    app.UseRequestIP();
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World!");
    });
}


运行(由于我这里是本地运行so这里ip就成这样了):


感谢各位老铁的观看!


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
这一世以无限游戏为使命!
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术