zoukankan      html  css  js  c++  java
  • DotNetCore学习-2.程序启动

    新创建的ASP.NET Core程序中包含两个文件,分别是Program、Startup。其中,Program中Main方法是整个应用程序的入口,该方法如下:

        var host = WebHost.CreateDefaultBuilder(args)
                    .UseKestrel(options => options.AddServerHeader = false)
                    .UseStartup<Startup>()
                    .Build();
        host.Run();
    

    它的主要作用就是设置使用Kestrel服务器,并设置程序启动类Startup。
    严格来说,Startup类需要继承自IStartup接口,但是此处采用契约的方式来实现,及时没有继承自IStartup,UseStartup方法内部也会将该类包装成IStartup接口的实现。
    Startup类包括一个属性一个构造函数,两个方法,分别为

    public class Startup
    {
        public IConfiguration Configuration { get; }
    
        public Startup(IConfiguration configuration)
        {
            //set configuration
            Configuration = configuration;
        }
    
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            // to do something
        public void Configure(IApplicationBuilder application)
        {
            // to do something
        }
    }
    

    Startup类中的方法的调用顺序为

    Startup构造->ConfigureServices(...)->Configure(...)
    ASP.NET MVC中的某些功能,需要从IServiceCollection中请求某些服务,而这些服务都需要在接入请求管道之前被加入IServiceCollection中,因此,ConfigureServices函数必须在Configure之前被调用。
    
    • 构造函数中的传入参数IConfiguration configuration中包含默认配置文件appsettings.json中的配置。我们能够通过获取配置的方式得到对应的配置信息。我们也可以在此处获取自定义配置信息。
    • ConfigureServices函数的传入参数IServiceCollection services,可以将程序中使用的服务使用依赖注入(Dependency Injection)的方式加入到服务容器,这样程序中的其他类就可以获取并使用它。向服务容器中添加服务时,就涉及到服务的生命周期的问题,ASP.NET Core中生命周期的定义包括以下三种:
    Transient 瞬时 每次请求时都会创建,适合轻量级,无状态的服务
    Scoped 作用域 每次请求中只创建一次
    Signleton 单例 第一次被请求时创建,以后每个后续请求都将使用这个实例
    • Configure函数的传入参数IApplicationBuilder application,用来配置应用程序将如何响应每个HTTP请求。
  • 相关阅读:
    js循环小练习
    计算字符串字节数
    查找最小值
    js文本复制插件&vue
    python打包成exe(py2exe)
    window2008 64位系统没有office组件问题分析及解决
    js onchange事件
    input file里的JQ change() 事件的只生效一次
    powerdesign的license key到期,解决办法
    JQuery好用的日期选择控件 DatePicker
  • 原文地址:https://www.cnblogs.com/DreamOfLife/p/9396707.html
Copyright © 2011-2022 走看看