首页 > 其他分享 >.net 升级 NetCore Config配置文件 读取

.net 升级 NetCore Config配置文件 读取

时间:2022-11-28 18:12:57浏览次数:40  
标签:Xml 配置文件 xDoc NetCore System key net string

.net ConfigurationManager.AppSettings[key];读取配置文件,依赖于.net framework 库,当升级为.net core 时会读不到,此时
.net core 读取配置文件,可以直接通过读取xml节点

点击查看代码
   public class Configs
    {
        /// <summary>
        /// 根据Key取Value值(弃用)
        /// </summary>
        /// <param name="key"></param>
        public static string GetValue(string key)
        { 
            object rel = ConfigurationManager.AppSettings[key];
            return (rel == null)?string.Empty:rel.ToString().Trim();
        }
        /// <summary>
        /// 根据Key取Value值
        /// </summary>
        /// <param name="key"></param>
        public static string GetSysConfigValue(string key)
        {
            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
            var configPath = System.IO.Directory.GetCurrentDirectory() + "/Configs/system.config";
            // xDoc.Load(HttpContext.Current.Server.MapPath("~/Configs/system.config"));
            xDoc.Load(configPath);
            XmlNodeList adds = xDoc.SelectNodes("//appSettings/add");
            foreach (XmlNode item in adds)
            {
                var keyStr = item.Attributes[0].Value;
                var valueStr = item.Attributes[1].Value;
                if (keyStr == key)
                {
                    return valueStr;
                }
            }
            return string.Empty;
        }
        /// <summary>
        /// 根据Key修改Value
        /// </summary>
        /// <param name="key">要修改的Key</param>
        /// <param name="value">要修改为的值</param>
        public static void SetValue(string key, string value)
        {
            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
            var configPath = System.IO.Directory.GetCurrentDirectory() + "/Configs/system.config";
            // xDoc.Load(HttpContext.Current.Server.MapPath("~/Configs/system.config"));
            xDoc.Load(configPath);
             
            System.Xml.XmlNode xNode;
            System.Xml.XmlElement xElem1;
            System.Xml.XmlElement xElem2;
            xNode = xDoc.SelectSingleNode("//appSettings"); 
            xElem1 = (System.Xml.XmlElement)xNode.SelectSingleNode("//add[@key='" + key + "']");
            
            if (xElem1 != null) 
            {
                xElem1.SetAttribute("value", value); 
            } 
            else
            {
                xElem2 = xDoc.CreateElement("add");
                xElem2.SetAttribute("key", key);
                xElem2.SetAttribute("value", value);
                xNode.AppendChild(xElem2);
            }
            //xDoc.Save(HttpContext.Current.Server.MapPath("~/Configs/system.config"));
            xDoc.Save(configPath);
            ConfigurationManager.RefreshSection("appSettings");
        }
        
    }

标签:Xml,配置文件,xDoc,NetCore,System,key,net,string
From: https://www.cnblogs.com/zgsy/p/16932929.html

相关文章

  • net中使用HtmlAgilityPack组件采集数据,就是这么简单
    如果要采集网页上的数据,最简单好用的是用Python语言实现,本身就是网络编程语言,有很多组件都可以使用。当然,如果你想用C#进行数据采集,也是没问题的,也有不错的组件可以使用,今......
  • kubernetes 集群部署问题点统计
    1、安装网络插件报错errorunabletorecognize"calico.yaml":nomatchesforkind"DaemonSet"inversion"extensions/v1"'描述:版本不匹配解决办法:地址:https://pr......
  • 运行tensorflow出现This TensorFlow binary is optimized with oneAPI Deep Neural Ne
    ThisTensorFlowbinaryisoptimizedwithoneAPIDeepNeuralNetworkLibrary(oneDNN)tousethefollowingCPUinstructionsinperformance-criticaloperations:......
  • win10无法加载用户配置文件,无法返回主用户
    在一次捣鼓电脑的过程中,需要新建一个用户,老规矩输入命令新建netuser{username}{password}/add切换用户登录后显示无法加载用户配置文件不仅登录不进去了,就连原来......
  • 在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET
    在k8s环境下,通过Operator可以管理Daprsidecar,在虚拟机环境下,我们也是非常需要这样的一个管理组件,类似下图:​​​​在这张图片中,在上图左面,我们看到了“dapr.exe”、我们......
  • .NET团队送给.NET开发人员的云原生学习资源
    企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性。要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方......
  • ASP.NET MVC Framework 动态汇集
    ASP.NETMVC还会使用aspx,但是它没有viewstate,没有postback,所以它在这里只是个模板引擎.这和Castle的Monorail项目是一样的,只是Monorail的非强类型的Prope......
  • Kubernetes应用程序开发认证(CKAD) 经验分享
    众所周知,Kubernetes在容器编排器大战中脱颖而出后,从2020年以来变得越发的火热。那么云原生计算基金会(CNCF)联合Linux基金会就适时的推出了皆在考察相关从业者对Kubernetes的......
  • 将Quartz.NET集成到 Castle中
    Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的......
  • Net6 CodeFirst注入MySQL数据库上下文
    十年河东,十年河西,莫欺少年穷学无止境,精益求精 2022太难了,好多公司倒闭,互联网不景气,工作难找,苏州的C#/Net程序员的招聘更是少之又少,java,C,等其他语言也是供大于求,总之,难上......