ASP.NET Core (Startup)
Startup
ASP.NET Core必须包含Startup类。它就像 Global.asax 文件,我们传统的 .NET 应用程序。如名称建议的那样,在应用程序启动时首先执行它。在程序类的Main方法中配置主机时,可以使用**UseStartup()**扩展方法配置启动类。请查看下面的程序类,并重点介绍 WebBuilder.UseStartup() 方法。
名称“Startup”是按照ASP.NET Core约定进行的。 但是,您可以给Startup类指定任何名称,只需在UseStartup ()方法中将其指定为通用参数即可。 例如,要将启动类命名为MyStartup,则将其指定为UseUseup ()。
通过在解决方案资源管理器中单击Startup.cs类文件,在Visual Studio中打开Startup类。 以下是ASP.NET Core 3.x中的默认启动类。
如上面在代码中看到的,Startup类包含两个公共方法:ConfigureServices和Configure。 Startup类必须包含Configure方法,并且可以选择包含ConfigureService方法。
ASP.NET Core Startup类中的ConfigureServices()方法 依赖注入模式在ASP.NET Core体系结构中大量使用。它包括内置的IoC容器,以使用构造函数提供相关的对象。
在ConfigureServices方法中,可以使用内置IoC容器注册依赖类。注册依赖类后,可以在应用程序中的任何位置使用它。您只需要在要使用它的类的构造函数的参数中包含它即可。 IoC容器将自动注入它。
ASP.NET Core将依赖类称为服务。因此,每当您阅读“服务”,然后将其理解为将在其他一些类中使用的类。
ConfigureServices方法包含IServiceCollection参数,以将服务注册到IoC容器。例如,如果要将RazorPages服务或MVC服务添加到asp.net核心应用程序,则需要将这些服务添加到该方法接受的参数中,如下图所示。
ASP.NET Core Startup类中的Configure()方法 在Configure方法中,我们可以使用内置IoC容器提供的IApplicationBuilder实例为asp.net核心应用程序配置应用程序请求管道。
ASP.NET Core引入了中间件组件来定义请求管道,该管道将在每个请求上执行。 您仅包括应用程序所需的那些中间件组件,从而提高了应用程序的性能。
带有Empty模板的ASP.NET Core应用程序的默认配置方法包括以下三个中间件,如下图所示。
AppSetting.json
当我们使用空项目模板或Razor页面或MVC模板或Web API模板创建ASP.NET Core Web应用程序时,Visual Studio会自动为我们创建appsettings.json文件,如下图所示。
appsettings.json文件是一个应用程序配置文件,用于存储配置设置,例如数据库连接字符串,任何应用程序范围的全局变量等。如果打开ASP.NET Core appsettings.json文件,则默认情况下会看到以下代码 这是由Visual Studio创建的。
现在,在该文件中添加一个名为MyName的键。 为此,请如下所示修改appsettings.json文件。
由于它是JSON文件,因此您需要以键值对的形式存储值。
访问AppSetting.json
若要访问Startup类中的配置信息,需要使用ASP.NET Core框架提供的IConfiguration服务。 因此,只需要做的只是通过Startup类的构造函数注入IConfiguration服务。
为此,请修改Startup.cs文件中存在的Startup类,如下所示。
首先,我们创建了一个IConfiguration _config类型的私有变量(此IConfiguration接口属于Microsoft.Extensions.Configuration命名空间,因此请首先使用此命名空间)。 然后,通过构造函数依赖项注入,我们注入IConfiguration对象并将其存储在私有变量config中。 以下代码。
然后,我们使用IConfiguration服务实例访问配置变量,即MyName, 以下代码。
现在运行该应用程序,您应该在浏览器中看到预期的值,如下图所示。
访问配置的默认顺序是什么?
为同一键读取各种配置源的默认顺序如下:
- appsettings.json,
- appsettings.{Environment}.json
- 用户设置
- 环境变量
- 命令行参数
如您所见,Program类的Main()方法调用CreateHostBuilder()方法。 然后,CreateHostBuilder()方法在Host类上调用CreateDefaultBuilder()方法。 此CreateDefaultBuilder()方法是设置读取所有配置源的默认顺序的方法。
如果需要,还可以更改此默认顺序,或者即使您愿意,也可以添加自己的自定义配置源以及现有的配置源。 在我们即将发布的文章中,我们将讨论设置自定义配置源。
的默认顺序的方法。
如果需要,还可以更改此默认顺序,或者即使您愿意,也可以添加自己的自定义配置源以及现有的配置源。 在我们即将发布的文章中,我们将讨论设置自定义配置源。