• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETCore3基础:01.示例项目搭建与启动顺序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

可以通过dotnet cli和visual studio进行创建项目,这里使用vs进行新建

  1. 这里选择ASP.NET Core Web应用程序

  1. HTTPS的勾去掉,点击创建。选择API是以为默认已经配置好了一些设置,方便进行测试。

  1. https://docs.microsoft.com/zh-cn/dotnet/core/install/localized-intellisense

二、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项目默认已经为程序添加了以下管道:

  • app.UseDeveloperExceptionPage​:显示异常的信息(发布到生成环境时不应该启用这个)
  • app.UseRouting​:配置应用程序的路由
  • app.UseAuthorization​:配置认证信息
  • http://www.ruanyifeng.com/blog/2011/09/restful.html

以上仅是很小一部分,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​方法,并返回数据。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
了解ASP.NET底层架构(转)发布时间:2022-07-10
下一篇:
ASP.NETUserControlsandCustomServerControls发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap