一、新建示例项目可以通过dotnet cli和visual studio进行创建项目,这里使用vs进行新建
二、ASP.NET Core 3的启动执行顺序首先看 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>( ); }); } } 接着看 构造方法中,注入了一个
以上仅是很小一部分,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( ); }); } } } 在 ASP.NET Core 请求管道包含一系列请求委托,依次调用。 下图演示了这一概念。 沿黑色箭头执行。每个委托均可在下一个委托前后执行操作。 应尽早在管道中调用异常处理委托,这样它们就能捕获在管道的后期阶段发生的异常。 三、简单的请求将项目启动后,请求 http://localhost:5000/weatherforecast 端口可能会不同,放回的结果(经过格式化): 例子中的请求顺序可以通过控制台或者输出窗口查看 因为配置了
|
|