• .net core 2.0学习笔记(五):程序配置&ConfigurationManager


         配置组件是.net framework中非常常用的功能。在创建.net framework 工程时,系统不仅会自动生成app.config文件,而且还提供了非常强大的访问类库。但是这些好东西,在.net core 2.0中已经不复存在,至少说没有.net framework 中那么完美了。

         在升级.net framework 程序到.net core 2.0时,如果通过.NET Portability Analyzer分析代码,会发现下面的提示,.net core:supported 2.0+,.net standard:not supported.虽然.net 2.0暂时不支持,但是微软提供的扩展类库是支持的,需要自己找Microsoft.Extention类库去。

    Image(52)

         好吧。既然Core 2.0中没有COnfigurationManager,我们就简单封装一个吧。首先,创建一个.net core 2.0 的类库工程.

    Image(53)

    然后打开nuget包管理。输入:Microsoft.Extensions.Configuration.Json,然后安装即可。

    Image(54)

    Image(55)

         在刚才新建的工程中新增类:ConfigurationManager,命名空间可以自定义了。然后,加入下面代码。

    public class ConfigurationManager
        {
            private static IConfigurationRoot config = null;
            static ConfigurationManager()
            {
                // Microsoft.Extensions.Configuration扩展包提供的
                var builder = new ConfigurationBuilder()
                    .AddJsonFile("app.json");
                config = builder.Build();
            }

           public static IConfigurationRoot AppSettings
            {
                get
                {
                    return config;
                }
            }

           public static string Get(string key)
            {
                return config[key];
            }

       }

         新建一个.net core 管理控制台程序,并新增加文件:app.config。文件内容为:

    {

           "Name": "my-other-value"

    }

         在管理控制台程序的Main函数中,编写下面代码,同时添加对类库工程的引用。配置问题比较顺利的搞定!  

      static void Main(string[] args)

      {

          Console.WriteLine(ConfigurationManager.AppSettings["Name"]);

          Console.ReadLine();

      }

      

      OK,通过上面努力,终于解决了配置的问题了。但是,有更简单的方法。直接在nuget管理中搜索:System.Configuration.ConfigurationManager,添加引用后,问题解决。郁闷,微软提供了这些类库,不知道为什么不放到公共的类库中呢?害的我大费周折。

  • 相关阅读:
    CodeForces1422A
    C++
    2020第十一届蓝桥杯第一场 B组 C/C++
    Aizu0118
    POJ1979
    monkey 稳定性测试
    adb shell 杀进程以及端口占用,adbserver服务重启失败
    windows查询端口,杀进程
    apk 测试入门基本操作
    解决 genymotion 安装apk报错 app contains ARM native code and your Genymotion device cannot run ARM instructions
  • 原文地址:https://www.cnblogs.com/vveiliang/p/7416370.html
Copyright © 2020-2023  润新知