zoukankan      html  css  js  c++  java
  • ASP.NET Core 配置文件(无处不在的依赖注入)

    前烟:

      .NET Core 中取消了以往的 XML 节点配置文件,改用了 *.json 格式。

      在 Startup.cs 文件中,构造方法 build appsetting.json 文件,

      本文主要对解析配置文件的官方工具类做总结;

    一、appsettings.json 文件

      在新建的 Core Web 项目中,默认会有一个全局的配置变量:IConfigurationRoot 

      提供了索引器、GetSection 方法;

    {
      "Host": "http://localhost:5966/",
      "Title": "Hello World",
      "SiteKeywords": "asp.net, c#, asp.net core, asp.net entityframework core",
      "Description": "DotNetClub: asp.net core",
      "ConnectionString": "Data Source=localhost;Initial Catalog=dbName;User Id=userName;Password=pwd;",
    
      "Redis": {
        "EndPoints": [ "localhost", "6379" ],
        "Password": "",
        "Db": ""
      },
    
      "Site": {
        "Host": "http://localhost:5966",
        "Title": "Hello World",
        "Description": "DotNetClub: asp.net core",
        "AllowRegister": true,
        "VerifyRegisterUser": false,
        "AdminUserList": []
      },
    
      "CookieName": "DotNetClub.User",
    
      "Categories": [
        {
          "Key": "share",
          "Name": "分享"
        },
        {
          "Key": "ask",
          "Name": "问答"
        },
        {
          "Key": "job",
          "Name": "招聘"
        }
      ]
    }

      获取根节点数据:

      Configuration["ConnectionString"]

      Configuration["Title"]

      获取节点数据:

      services.Configure<RedisOptions>(Configuration.GetSection("Redis").Bind)

      重点记录的是这个 Microsoft.Extensions.Options.ConfigurationExtensions 提供的 IOptions

      Configure 方法可以将 appsettings.json 中的配置绑定某一个实体对象上。如:

        public class RedisOptions
        {
            /// <summary>
            /// Redis end points, such as "{host or ip}:{port}"
            /// </summary>
            public string[] EndPoints { get; set; }
    
            /// <summary>
            /// Redis password
            /// </summary>
            public string Password { get; set; }
    
            /// <summary>
            /// Default redis database
            /// </summary>
            public int Db { get; set; }
        }
    View Code

      完成这样的一个过程就是 Configure 类实现了一个依赖注入;

  • 相关阅读:
    ListComparer
    C#.net中类与结构的区别
    对C# 中堆栈,堆,值类型,引用类型的理解
    一道面试题
    Mvc不等于三层架构
    SQL养成一个好习惯是一笔财富
    清除MSSQL事务日志文件
    面向对象设计(OOD)五大基本原则
    .net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解之一
    IIS7 Login failed for user IIS APPPOOL\ASP.NET v4.0
  • 原文地址:https://www.cnblogs.com/loongsoft/p/7372724.html
Copyright © 2011-2022 走看看