美文网首页.Netcore.NET.NetCore3.0 WebApi
Asp.netCore3.0 WebApi从0到1手摸手教你写【

Asp.netCore3.0 WebApi从0到1手摸手教你写【

作者: 我是Mr小赵先生 | 来源:发表于2019-10-21 16:24 被阅读0次

    为什么写这个教程

    我们在写一些项目时往往会把一些经常变动的,可能会变动的参数写到配置文件、数据库中等可以存储数据且方便配置的地方,这样会方便我们在项目上线以后做相对应的配置工作。

    在我们这个WebApi项目中我们将把配置文件统一放在appsettings.json文件中,同时将写一个读取配置文件的公用类,具体方法如下。

    第一步在appsettings.json文件中增加一个存放配置信息的参数AppSettings

    教程【2】中我们把读取数据库连接字符串放在了ConnectionStrings中的xxxDB里,然后在xxxContext.cs中定义了一个ConStr静态变量来从Startup.cs中获取数据库连接字符串。在此我们将会把xxxDB放在统一的配置标签下。
    在appsettings.json新增AppSettings,然后在里面增加xxxDB、IsSign、Md5Key等配置参数。

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      //接口配置参数设置
      "AppSettings": {
        //数据库连接字符串
        "xxxDB": "Server=127.0.0.1;User Id=用户id;Password=密码;Database=数据库名称;",
        //接口是否需要签名
        "IsSign": "true",
        //16位MD5签名key
        "Md5Key": "5ShiCeShiAAAAAAA"
      }
    }
    

    第二步增加AppSettings.cs操作类

    在之前教程中没有用到Common类库里添加一个AppSettings.cs类,具体代码如下:

    using Microsoft.Extensions.Configuration;
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace XXX.Common
    {
        public class AppSettings
        {
            private static IConfigurationSection appSection = null;
            /// <summary>
            /// 获取配置文件
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string GetAppSeting(string key)
            {
                if (appSection.GetSection(key)!=null)
                {
                    return appSection.GetSection(key).Value;
                }
                else
                {
                    return "";
                }
            }
            /// <summary>
            /// 设置配置文件
            /// </summary>
            /// <param name="section"></param>
            public static void SetAppSetting(IConfigurationSection section)
            {
                appSection = section;
            }
        }
    }
    

    第三步修改Startup.cs

    在Startup.cs中的Configure方法中获取appsettings.json值,代码如下:

    //从appsettings.json获取配置文件
                Common.AppSettings.SetAppSetting(Configuration.GetSection("AppSettings"));
    

    第四步使用

    通过Common.AppSettings.GetAppSeting("配置文件名")读取配置文件
    示例:
    从配置文件中读取连接字符串
    打开XXXContext.cs在OnConfiguring方法中设置数据库连接字符串。

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    //通过配置文件操作类读取数据库连接字符串
                    optionsBuilder.UseSqlServer(Common.AppSettings.GetAppSeting("xxxDB"));
                }
            }
    

    这篇教程属于对之前3个教程的补充,后面会继续优化这个项目。

    项目源码地址

    https://github.com/xiaxiaoqian/NetCore3.0-WebApi

    相关文章

      网友评论

        本文标题:Asp.netCore3.0 WebApi从0到1手摸手教你写【

        本文链接:https://www.haomeiwen.com/subject/mgptvctx.html