ASP.NET Core 配置

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: ASP.NET Core (Startup) StartupASP.NET Core必须包含Startup类。它就像 Global.asax 文件,我们传统的 .NET 应用程序。如名称建议的那样,在应用程序启动时首先执行它。在程序类的Main方法中配置主机时,可以使用**UseStartup()**扩展方法配置启动类。请查看下面的程序类,并重点介绍 WebBuilder.UseStart...

ASP.NET Core (Startup)

Startup

ASP.NET Core必须包含Startup类。它就像 Global.asax 文件,我们传统的 .NET 应用程序。如名称建议的那样,在应用程序启动时首先执行它。在程序类的Main方法中配置主机时,可以使用UseStartup()扩展方法配置启动类。请查看下面的程序类,并重点介绍 WebBuilder.UseStartup() 方法。

image.png

名称“Startup”是按照ASP.NET Core约定进行的。 但是,您可以给Startup类指定任何名称,只需在UseStartup ()方法中将其指定为通用参数即可。 例如,要将启动类命名为MyStartup,则将其指定为UseUseup ()。

通过在解决方案资源管理器中单击Startup.cs类文件,在Visual Studio中打开Startup类。 以下是ASP.NET Core 3.x中的默认启动类。

image.png

如上面在代码中看到的,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核心应用程序,则需要将这些服务添加到该方法接受的参数中,如下图所示。

image.png

ASP.NET Core Startup类中的Configure()方法
在Configure方法中,我们可以使用内置IoC容器提供的IApplicationBuilder实例为asp.net核心应用程序配置应用程序请求管道。

ASP.NET Core引入了中间件组件来定义请求管道,该管道将在每个请求上执行。 您仅包括应用程序所需的那些中间件组件,从而提高了应用程序的性能。

带有Empty模板的ASP.NET Core应用程序的默认配置方法包括以下三个中间件,如下图所示。

image.png

AppSetting.json

当我们使用空项目模板或Razor页面或MVC模板或Web API模板创建ASP.NET Core Web应用程序时,Visual Studio会自动为我们创建appsettings.json文件,如下图所示。

image.png

appsettings.json文件是一个应用程序配置文件,用于存储配置设置,例如数据库连接字符串,任何应用程序范围的全局变量等。如果打开ASP.NET Core appsettings.json文件,则默认情况下会看到以下代码 这是由Visual Studio创建的。

image.png

现在,在该文件中添加一个名为MyName的键。 为此,请如下所示修改appsettings.json文件。

由于它是JSON文件,因此您需要以键值对的形式存储值。

image.png

访问AppSetting.json

若要访问Startup类中的配置信息,需要使用ASP.NET Core框架提供的IConfiguration服务。 因此,只需要做的只是通过Startup类的构造函数注入IConfiguration服务。

为此,请修改Startup.cs文件中存在的Startup类,如下所示。

image.png

首先,我们创建了一个IConfiguration _config类型的私有变量(此IConfiguration接口属于Microsoft.Extensions.Configuration命名空间,因此请首先使用此命名空间)。 然后,通过构造函数依赖项注入,我们注入IConfiguration对象并将其存储在私有变量config中。 以下代码。

image.png

然后,我们使用IConfiguration服务实例访问配置变量,即MyName, 以下代码。
image.png

现在运行该应用程序,您应该在浏览器中看到预期的值,如下图所示。

image.png

访问配置的默认顺序是什么?

为同一键读取各种配置源的默认顺序如下:

  1. appsettings.json,
  2. appsettings.{Environment}.json
  3. 用户设置
  4. 环境变量
  5. 命令行参数

如您所见,Program类的Main()方法调用CreateHostBuilder()方法。 然后,CreateHostBuilder()方法在Host类上调用CreateDefaultBuilder()方法。 此CreateDefaultBuilder()方法是设置读取所有配置源的默认顺序的方法。

如果需要,还可以更改此默认顺序,或者即使您愿意,也可以添加自己的自定义配置源以及现有的配置源。 在我们即将发布的文章中,我们将讨论设置自定义配置源。

的默认顺序的方法。

如果需要,还可以更改此默认顺序,或者即使您愿意,也可以添加自己的自定义配置源以及现有的配置源。 在我们即将发布的文章中,我们将讨论设置自定义配置源。

目录
相关文章
|
19天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
72 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
3月前
|
开发框架 JavaScript .NET
ASP.NET Core的超级大BUG
ASP.NET Core的超级大BUG
43 0
|
1月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
C#/.NET/.NET Core拾遗补漏合集(持续更新)
|
1月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
65 0
|
2月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
37 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
2月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
43 0