Startup类

Startup 类

配置应用所需的服务,服务就是应用所需要的的组件

定义请求处理管道

需要将配置的服务添加到ConfigureServices中

Configure方法以创建应用的请求处理管道

在应用启动时,ASP.NET Core 运行时会调用 ConfigureServices 和 Configure,在调用 Configure 方法之前,大多数服务都不可用

只能将IWebHostEnvironment,IHostEnvironment,IConfiguration服务类型注入到构造函数中

// 中断响应 Run():添加中间件并终止请求管道
app.Run(context => context.Response.WriteAsync("I am Hello world"));

 public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
            // 基架工具自动创建 DB 上下文并将其注册到依赖关系注入容器。
            services.AddDbContext<RazorPagesMovieContext>(options =>
                    options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext")));
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }

 指定主机生成器,主机是封装应用资源的对

调用 CreateHostBuilder 方法以创建和配置生成器对象。

对生成器对象调用 Build 和 Run 方法

Http管道模型就是请求处理的步骤,默认由Kestrel服务器解析,

HttpContext->经过多个步骤处理成Response,然后回传给用户

 public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

  

posted @ 2020-02-09 12:38  bradleydan  阅读(161)  评论(0)    收藏  举报