netcore Startup.cs文件相关内容总结

25 篇文章 1 订阅

第一次面对 Startup.cs 往往无从下手,本文记录在项目中的经验,不会涉入到内部的代码实现以及相关的原理。

项目初始化完成startup.cs的原貌:

.NET Core 项目经验总结:Startup.cs 介绍(二)

ConfigureServices: 将服务注入到容器中 比如:第三方组件

Configuere:配置http请求管道 ,比如:session,cookie

读取配置信息

.Net Core 使用appsetting.json 存储配置信息,如图:

.NET Core 项目经验总结:Startup.cs 介绍(二)

在文件中,增加了数据库配置信息,怎么读取呢?

  public void ConfigureServices(IServiceCollection services)
    {
        string connectionString = Configuration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;
        string providerMame = Configuration.GetSection("ConnectionStrings").GetSection("ProviderName").Value;
        services.AddMvc();
    }

Configuration.GetSection(“节点名称”).GetSection(“子节点名称”).Value
这只是读取配置的一种方式,还有通过类映射配置信息方式,在以后的章节中详细描述

依赖注入

依赖注入在 ASP.NET Core 中无处不存在,在之前打印参数的例子中同样用到。依赖注入好处都有啥?为什么我们需要依赖注入?在 很好地解释了:

对于控制器,我们有三种方式注入对象:构造函数、控制器动作、属性注入。然而,在一般的类中,使用自带的 DI 只能是构造函数注入。到底是哪种方式好,见仁见智。

ASP.NET Core 服务可以被配置为以下生命周期:

    瞬时(Transient)在它们每次请求时都会被创建。这一生命周期适合轻量级的,无状态的服务。

    作用域 (Scoped)在每次请求中只创建一次。

单例(Singleton)在它们第一次被请求时创建(或者如果你在 ConfigureServices运行时指定一个实例)并且每个后续请求将使用相同的实例。

    public void ConfigureServices(IServiceCollection services)
    {

        ...依赖注入代码
        services.AddMvc();
    }

.Net Core 使用Session

.Net Core里使用Session需要添加Session类库,项目上基于NuGet添加:Microsoft.AspNetCore.Session。

在startup.cs找到方法ConfigureServices(IServiceCollection services) 注入Session:

services.AddSession();

接下来我们要告诉Asp.net Core使用内存存储Session数据,在Configure(IApplicationBuilder app,…):

app.UseSession();

在Controller中使用

.NET Core 项目经验总结:Startup.cs 介绍(二)

.Net Core 使用Cache

说到内存缓存大家可能立马想到了HttpRuntime.Cache,它位于System.Web命名空间下,但是在ASP.NET Core中System.Web已经不复存在

首先需要在ConfigureServices中注册缓存服务

.NET Core 项目经验总结:Startup.cs 介绍(二)

在下面的代码中从Home控制器的构造函中获取IMemoryCache实例

.NET Core 项目经验总结:Startup.cs 介绍(二)

设置缓存 Set

_cache.Set(“key”, “value”);
移除缓存 Remove

_cache.Remove(“key”);

.Net Core 使用异常信息

ASP.NET Core 2.0开始Microsoft.AspNetCore.All包里面包含了所有以Microsoft.AspNetCore开头的包,只是需要在Startup类的Configure方法中进行配置

.NET Core 项目经验总结:Startup.cs 介绍(二)

将UseDeveloperExceptionPage放在你想捕获的中间件之前,如app.UseMvc。

注:为了应用程序的安全,一般不会在生产环境中启起用开发者页面(异常页面)。

到这里,startup.cs 的基本情况介绍完成了,在以后的经验总结中,会对每个配置点进行详细的介绍!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值