ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用
来源:互联网 发布:开农村淘宝靠什么赚钱 编辑:程序博客网 时间:2024/06/08 14:33
在StratUp.cs的Configure方法中,除了 常用的参数除了IApplicationBuilder和在我上一篇文章中提到的Iconfiguration点击打开链接
外 还有
IHostingEnvironment和IApplicationLifetime
那么这两个参数有什么用以及怎么用呢?
首先我们想建一个ASP.NET Core的空项目
然后到Startup.cs中,在Configure方法中加入IHostingEnvironment env和IApplicationLifetime applicationLifetime两个参数
public void Configure(IApplicationBuilder app, IHostingEnvironment env,IApplicationLifetime applicationLifetime)
我们来看看env能点出哪些方法
没错,我们可以看到这基本是一些该应用程序的环境信息,包括程序名称信息,根目录,环境名称 等等基本信息,我们以该程序为例输出该程序的这些信息看看。
修改app.run中的代码
await context.Response.WriteAsync($"name=\"{env.ApplicationName}\""); await context.Response.WriteAsync($"name=\"{env.ContentRootFileProvider}\""); await context.Response.WriteAsync($"name=\"{env.ContentRootPath}\""); await context.Response.WriteAsync($"name=\"{env.EnvironmentName}\""); await context.Response.WriteAsync($"name=\"{env.WebRootFileProvider}\""); //不一一输出了 原理一样的运行 ,看看输出了哪些内容
所以说,IHostingEnvironment就是保存了asp.net core程序的基本环境信息的。
我们再来看看IApplicationLifetime 该方法是用来绑定应用程序的运行时事件的 我们这样来修改Configure中的代码
public void Configure(IApplicationBuilder app, IHostingEnvironment env,IConfiguration configuration,IApplicationLifetime applicationLifetime) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } applicationLifetime.ApplicationStarted.Register(() => { Console.WriteLine("Strated"); }); applicationLifetime.ApplicationStopping.Register(() => { Console.WriteLine("Stoping"); }); applicationLifetime.ApplicationStopped.Register(() => { Console.WriteLine("Strated"); }); app.Run(async (context) => { await context.Response.WriteAsync($"name=\"{env.ApplicationName}\""); await context.Response.WriteAsync($"name=\"{env.ContentRootFileProvider}\""); await context.Response.WriteAsync($"name=\"{env.ContentRootPath}\""); await context.Response.WriteAsync($"name=\"{env.EnvironmentName}\""); await context.Response.WriteAsync($"name=\"{env.WebRootFileProvider}\""); //不一一输出了 原理一样的 //await context.Response.WriteAsync($"connectionString=\"{configuration["connectionString:defaultConnectionString"]}\""); //await context.Response.WriteAsync($"name=\"{configuration["name"]}\""); await context.Response.WriteAsync("Hello World!"); }); }
给应用程序再启动后,停止中,停止后,分别绑定了控制台输出事件,我们运行看看输出结果:
可以看到 再控制台中 分别再应用程序的启动后 关闭中 关闭后进行了内容的输出,所以我们得出结论 IApplicationLifetime 该方法是用来绑定应用程序的运行时事件的。
该项目的完整github代码:https://github.com/liuzhenyulive/WebHost
有任何疑问欢迎再文章下方留言。
- ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用
- Asp.Net Core轻松入门之WebHost的配置
- ASP.NET Core轻松入门之Middleware管道模型
- asp.net core轻松入门之MVC中Options读取配置文件
- ASP.NET Core 源码学习之 Logging[2]:Configure
- ASP.NET Core 源码学习之 Options[1]:Configure
- Asp.net core中Migration工具使用的交流分享
- ASP.NET Core轻松入门Bind读取配置文件到C#实例
- ASP.NET Core MVC 和 Visual Studio入门(五) 使用 SQL Server LocalDB
- ASP.NET Core(二)【入门】
- 使用asp.net core的启动篇
- ASP.NET Core 之 Identity 入门(一)
- ASP.NET Core 之 Identity 入门(三)
- ASP.NET Core 之 Identity 入门(二)
- ASP.NET Core 之 Identity 入门(一)
- ASP.NET CORE入门之读取Json配置文件
- ASP.NET Core MVC 和 Visual Studio入门 (一)安装Visual Studio和.NET Core
- asp.net core 使用session
- 数据结构实验之查找七:线性之哈希表
- 51Nod 1098 最小方差 排序
- SQL Server 创建表 添加主键 添加列常用SQL语句
- Java lambda 表达式的基础知识
- 第十四周项目1
- ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用
- 设计模式学习(四) — 行为模式
- 第007讲-第011讲 从1000个代码案例中学习人工智能和大数据实战
- 五年开发经验
- 模块化数据和模版填充页面,并且用本地存储来提高用户体验。
- 自己考试用的!!!!
- 数据结构实验之二叉树五:层序遍历
- SQL查询语句中select from where group by having order by的执行顺序
- scrapy爬虫框架的详细用法