在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
可以通过dotnet cli和visual studio进行创建项目,这里使用vs进行新建
二、ASP.NET Core 3的启动执行顺序Startup 这个类作为启动的配置类。 using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; namespace MyExample.DemoWebApi { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build( ).Run( ); } public static IHostBuilder CreateHostBuilder(string[] args) => // 使用预配置默认值初始化 HostBuilder 类的新实例 Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>( ); }); } } Startup.cs 文件,在这里可以添加我们自己的配置。 Program.cs 中已经默认为程序提供了一些默认的注入。 ConfigureServices 可以用来配置自定的程序服务注入,例如:EFCore的仓储注入、应用程序的配置等。一般来说不会直接在这个类下面写,而是创建一个扩展方法。 Configure 用来配置应用程序的请求管道,API项目默认已经为程序添加了以下管道:
以上仅是很小一部分,ASP.NET Core 3有非常多的默认中间件供调用,我们也可以配置自己的中间件实现,实现自定义请求的控制。 using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.Threading; namespace MyExample.DemoWebApi { 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.AddControllers( ); } // 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( ); } app.UseRouting( ); app.UseAuthorization( ); app.UseEndpoints(endpoints => { // 默认实现方式:RESTful endpoints.MapControllers( ); }); } } } Configure 方法中的中间件定义是有先后顺序区分的,默认是先定义的先执行。请求管道中的每个中间件组件负责调用管道中的下一个组件,或在适当情况下使链发生短路,官网的图: ASP.NET Core 请求管道包含一系列请求委托,依次调用。 下图演示了这一概念。 沿黑色箭头执行。每个委托均可在下一个委托前后执行操作。 应尽早在管道中调用异常处理委托,这样它们就能捕获在管道的后期阶段发生的异常。 三、简单的请求http://localhost:5000/weatherforecast 端口可能会不同,放回的结果(经过格式化): 例子中的请求顺序可以通过控制台或者输出窗口查看 Get方法,并返回数据。
|
请发表评论