一、Program文件:
1.CreateWebHostBuilder():
构建web服务
2.WebHost.CreateDefaulBuilder():
使用默认配置,包括
1.使用了Kestrel Web Server
2.集成了IIS
3.配置了Log
4.创建了实现IConfiguration接口的对象,该对象可获取appsettings.json文件配置信息
3.UseStartup<Startup>()
使用Startup类来配置web应用
二、Startup文件:
1.调用顺序是先ConfigureServices()后Configure(),由运行时调用。
2.ConfigureServices():
将服务注册到容器中,可以是第三方组件
配置依赖注入
可直接在方法参数放入已经注入的配置,
如:ConfigureServices(IConfiguration config),会通过注入的方式得到IConfiguration接口的实现,通过config.GetConnectionString()可以拿到appsetting.json的连接字符串配置信息,config.GetSection("ConnectionStrings").GetSection("ProviderName").Value则可以按一个节点一个节点下拿配置
3.Configure():
配置http请求管道,比如:session,cookie
将一个中间件组件添加到请求管道,例如:app.UseMvc()扩展方法将路由中间件添加到请求管道,并将MVC配置为默认处理程序。
也可以自定义中间件
三、.net core内置依赖注入
在Startup文件的ConfigureServices()方法下
1.services.AddSingleton(),创建单例对象
2.services.AddTransient(),每次使用创建一个对象
3.services.AddScoped(),一次http请求创建一个对象
四、 中间件
1.在Startup文件的Configure()方法下
app.Use...(中间件配置参数),如:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //添加用于将HTTP请求重定向到HTTPS的中间件。 app.UseHttpsRedirection(); //为当前请求路径启用静态文件服务 app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Longin}/{id?}"); }); }
2.自定义中间件,请参考我另一篇博文https://www.cnblogs.com/yijiayi/p/10964418.html