zoukankan      html  css  js  c++  java
  • .NET Core 项目经验总结:Startup.cs 介绍(二)

    原文地址(个人博客):http://www.gitblogs.com/Blogs/Details?id=643c9664-dc4e-42cf-a15f-5368ebfcd7c9

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

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

    image.png

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

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

    读取配置信息

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

    image.png

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

          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中使用

    image.png

    .Net Core 使用Cache

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

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

    image.png

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

    image.png

    设置缓存 Set

    _cache.Set("key", "value");

    移除缓存 Remove

    _cache.Remove("key");

    .Net Core 使用异常信息

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

    image.png

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

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

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

    原文地址(个人博客):http://www.gitblogs.com/Blogs/Details?id=643c9664-dc4e-42cf-a15f-5368ebfcd7c9

  • 相关阅读:
    react实现登陆页面
    “css中设置边框不显示,border:none; 和border:0; 都没用”的解决方案
    JQuery AJAX的post()方法和get()方法的区别
    JQuery事件之文档/窗口事件
    JQuery事件之表单事件
    【K8S初识】-什么是Kubernetes
    Yaml语法理解
    Json语法理解
    Maven学习-Maven工程中默认的环境变量
    Java语言(7)-Java中的注解
  • 原文地址:https://www.cnblogs.com/manglu/p/9656337.html
Copyright © 2011-2022 走看看