ASP.NET Core中Startup.cs介绍
本项目使用的是 visual studio 2017和.net core 2.1的版本。
ASP.NET Core Web应用被创建后,项目中会产生两个文件:Program.cs、Startup.cs,程序中把Program.cs作为Web应用程序的入口,程序启动时会调用Startup.cs类。
ASP.NET MVC、WebApi中 Global.asax、FilterConfig.cs 和 RouteConfig.cs等类都被Program.cs、Startup.cs取而代之。
Startup.cs的作用是:在项目中用到的静态文件、管道、服务、日志、路由、数据库连接、过滤器的注册等所有有关程序运行时使用。
项目Startup.cs类:
public class Startup { public IConfiguration Configuration { get; } public Startup(IConfiguration configuration) { Configuration = configuration; } // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddDbContext<AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")) ); services.AddMvc(); //自动添加服务依赖 //AddTransient 每次注册服务,会创建新的仓库,以保证仓库之间独立 //仓库依赖注入系统 services.AddTransient<INoodleRepository, NoodleRepository>(); services.AddTransient<IFeedbackRepository,FeedbackRepository>(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //app.UseMvcWithDefaultRoute(); 默认路由 app.UseStaticFiles(); app.UseAuthentication(); app.UseMvc(route => { route.MapRoute("default","{controller=Home}/{action=Index}/{id?}"); }); app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } }
从上面可以看出Startup.cs主要包含两个方法:ConfigureServices、Configure
1.ConfigureServices方法:将服务注册到容器。eg:第三方组件
services.AddMvc(); //注入MVC模块,包含MvcCore和常用的第三方库的服务和方法
services.AddTransient<INoodleRepository, NoodleRepository>(); //自动添加服务依赖。瞬时注入,每次都会创建一个新的对象,以保证对象之间的独立性
services.AddSingleton<IStudentRepository,MockStudentRepository>(); //单例注入,创建的对象在所有的地方所有的请求会话创建的都是相同的
services.AddScoped<IStudentRepository,MockStudentRepository>(); //作用域注入,创建的对象在同一个请求会话时是相同的
2.Configure方法:配置Http请求管道。 eg:session、cookie
HostingEnvironment.IsDevelopment(); //判断当前运行环境是否是 Microsoft,如果是则返回true。
//如果要判断其他运行环境,比如 Linux,则使用 env.IsEnvironment("environmentname") environmentname为要验证的环境名称。
app.UseStaticFiles(); //使用静态文件
//使用MVC管道路径,可以在这个配置路由等操作
app.UseMvc(route =>
{
route.MapRoute("default","{controller=Home}/{action=Index}/{id?}");
});
原文地址:https://www.cnblogs.com/qianlang/p/12573170.html
- PowerVM虚拟化环境下 CPU 利用率的监控与探究
- 虚函数中构造函数的调用顺序
- HDUOJ-----4512吉哥系列故事——完美队形I(LCIS)
- go语言mongdb管道使用(二)
- HDUOJ--4565 So Easy!
- Go 语言Map(集合)
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- java 快速求素数
- 狄斯奎诺(dijkstra 模板)
- HDUOJ---汉洛塔IX
- 小错误系列
- HDUOJ-----4510 小Q系列故事——为什么时光不能倒流
- HDUOJ----4509湫湫系列故事——减肥记II
- HDUOJ-----4506小明系列故事——师兄帮帮忙
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL如何管理客户端连接?线程池篇
- 让python装饰器不再晦涩难懂
- Android开发3年,九月份面试12家大厂跳槽成功,我有一些面试经验想分享给你们
- MySQL的防火墙功能
- Java中线程池的参数有几个?
- MySQL企业版备份工具MEB
- python生成器函数的应用场景举例---为copy过程添加进度条显示
- 短网址程序YOURLS安装及配置教程与设置中文
- MGR用哪个版本?5.7 vs 8.0
- 同事直呼666!小姐姐仅用3行代码就能玩出花来
- MySQL升级至8.0需要考虑哪些因素?
- 某云Music——JS破解全过程
- 和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性
- 框架源码调试实战之easypoi异常解决方案精讲
- MySQL8.0的错误日志