ASP.NET Core学习——2

Application Startup

ASP.NET Core为应用程序提供了处理每个请求的完整控制。Startup类是应用程程的入口(entry point),这个类可以设置配置(configuration),并且将应用程序将要使用的服务连接起来。

开发人员可以在Startup类中配置请求管道,该管道将用于处理应用程序的所有请求。

1.Startup类

在ASP.NET Core中,Startup类提供了应用程序的入口,而且在所有应用程序中都有Startup类。

Startup类能够选择性地在构造函数中接受通过依赖注入提供的依赖项。

Startup类必须定义Configure方法,可选择定义一个ConfigureServices方法,这些方法将在应用程序启动时被调用。

2.Configure方法

Configure方法用于指定ASP.NET应用程序将如何响应每一个HTTP请求。

复杂的管道配置可以封装于中间件(middleware)中,并通过扩展方法添加到IApplicationBuilder上。

Configure方法必须接受一个Configure参数。一些额外服务,比如IHostingEnvironment或ILoggerFactory也可以被指定,并且在它们可用的情况下,这些服务将会被服务器注入进来。

下面的例子中,多个扩展方法被用于配置管道,以支持BrowserLink、错误页、静态文件、ASP.NET MVC以及Identity

public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
                app.UseDirectoryBrowser();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseIdentity();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name:"default",
                    template:"{controller=Home}/{action=Index}/{id?}"
                    );
            });
        }

每个Use扩展方法都会把一个中间件加入请求管道。例如,UseMvc扩展方法增加了路由中间件请求管道,并配置MVC为默认处理程序。

3.ConfigureServices

正如Configure,建议在IServiceCollection上使用扩展方法来包装需要大量配置细节的ConfigureServices。

下面的例子中看到几个Add[Something]扩展方法被用于设置应用程序,以能够使用Entity Framework、Identity和MVC

        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services
            services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();

            services.AddMvc();

            // Add application services
            services.AddTransient<IEmailSender, AuthMessageSender>();
            services.AddTransient<ISmsSender, AuthMessageSender>();
        }

通过依赖注入可将服务加入服务容器,使其在应用程序中可用。

原文地址:https://www.cnblogs.com/ahao214/p/11187402.html

时间: 2024-11-07 15:12:47

ASP.NET Core学习——2的相关文章

ASP.NET Core学习系列

.NET Core ASP.NET Core ASP.NET Core学习之一 入门简介 ASP.NET Core学习之二 菜鸟踩坑 ASP.NET Core学习之三 NLog日志 ASP.NET Core学习之四 在CentOS上部署.net core LINUX学习系列 DOCKER学习系列 微服务学习系列 原文地址:https://www.cnblogs.com/xcsn/p/8306854.html

ASP.NET Core学习零散记录

赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com/TomXu/),当然还有我们博客园的Core中国学习小组啦(http://www.cnblogs.com/dotNETCoreSG/),只是笔记作用,所以很多图片,文字都是来源于他们~ 中间件(middleware): 原文:随着WebHost的Start方法的调用,按照具体需求进行定制的请求处理

ASP.NET Core学习之一 入门简介

一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问题”,是简单的问题,对,就是简单,就是因为觉得简单被忽略的东西,恰恰这才是最重要的. 1.学习资料 首先,介绍下哪里可以获得学习资料 英文官网,最好的文档,英语得过硬 https://docs.microsoft.com/en-us/aspnet/core/ 可惜当年英语就是马马虎虎过来的,所以找了

ASP.NET Core学习之三 NLog日志

上一篇简单介绍了日志的使用方法,也仅仅是用来做下学习,更何况只能在console输出. NLog已是日志库的一员大佬,使用也简单方便,本文介绍的环境是居于.NET CORE 2.0 ,目前的版本也只有beta版. 一.安装和配置 1.安装 命令如下 PM> Install-Package NLog.Web.AspNetCore -Version 4.5.0-beta04 2.创建配置文件 在web项目根目录下,创建配置文件nlog.config ,并且将文件的属性“复制到输出目录”设置为"

ASP.NET Core学习总结(1)

经过那么长时间的学习,终于想给自己这段时间的学习工作做个总结了.记得刚开始学习的时候,什么资料都没有,光就啃文档.不过,值得庆幸的是,自己总算还有一些Web开发的基础.至少ASP.NET的WebForm和MVC那一套还是有所了解的,虽然也不是很精通.说起来,那时候对整个网络应用的整体流程以及什么HTTP协议都不是很了解.终归是在微软爸爸的庇护下艰难的成长. 1.概念 概念这种东西,感觉还是太过于学术化.也就是时间长了,慢慢就能理解的一些经常用到的词而已.对于大多数人来说,我们几乎每天都会浏览网页

ASP.NET Core学习——6

依赖注入DI ASP.NET Core的底层设计支持和使用依赖注入.ASP.NET Core应用程序可以利用内置的框架服务将它们注入到启动类的方法中,并且应用程序服务能够配置注入. 1.什么是依赖注入 依赖注入(Dependency injection, DI)是一种实现对象及其合作者或依赖项之间松散耦合的技术.将类来执行其操作(Action)的这些对象以某种方式提供给类,而不是直接实例化合作者或使用静态引用.通常,类会通过它们的构造函数声明其依赖关系,允许它们遵循显示依赖原则(Explicit

ASP.NET Core学习——7

多环境ASP.NET Core介绍了支持在多种环境中管理应用程序行为的改进,如开发(devlopment),预演(staging)和生成(production).环境变量用来指示应用程序正在运行的环境,允许应用程序适当地配置. 1.开发.预演和生成ASP.NET Core引用了一个特定的环境变量ASPNETCORE_ENVIRONMENT来描述应用程序当前运行的环境.这个变量可以被设置为任何你喜欢的值,但是有三个值被约定使用:Development(开发).Staging(预演)和Product

【ASP.NET Core学习】基础

新建项目时,程序入口调用CreateDefaultBuilder(args),下面是源代码 public static IHostBuilder CreateDefaultBuilder(string[] args) { var builder = new HostBuilder(); builder.UseContentRoot(Directory.GetCurrentDirectory()); builder.ConfigureHostConfiguration(config => { co

【ASP.NET Core学习】Web API

这里介绍在ASP.NET Core中使用Web API创建 RESTful 服务,本文使用VSCode + NET Core3.0 创建简单Rest API 格式化输出 JSON Patch请求 Open API(Swagger)集成 创建简单Rest API 在终端输入 dotnet new webapi -n WebAPI 1. 创建Order模型,然后初始化数据 public class OrderStore { public List<Order> Orders { get; } =