c# 获取nacos配置 .net framework

89 阅读1分钟

1.前言

因历史.net framework4.5项目需要对接nacos,获取nacos中配置项,但现有的官方提供的最新demo 是.net core 版本,需要找到官方历史版本的 nacos.dll 包对接。故记录下对接过程。

2.使用.net

1.在nuget上找到nacos.dll,

image.png

2.app.setting 添加配置项

	<!-- Nacos配置中心启动配置 -->
	<add key="Nacos.Host" value="http://10.0.0.101:8848" />
        <!-- Nacos.Env 我随便写 -->
	<add key="Nacos.Env" value="test" />
	<add key="Nacos.DataId" value="wms-stock" />
	<add key="Nacos.Group" value="test" />
        <!-- Nacos.Tenant nacos命名空间 -->
	<add key="Nacos.Tenant" value="sys" />
        <!-- Nacos.SnapshotPath nacos快照本地存储路径,需要在代码中手动赋值 -->
	<add key="Nacos.SnapshotPath" value="E:/nacos/config" />

3.代码

using Com.Alibaba.Nacos.Core;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Utilities
{
    /// <summary>
    /// 获取nacos配置项内容
    /// </summary>
   public  class NacosUtils
    {
        private static log4net.ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


        /// <summary>
        /// 获取服务配置项内容
        /// </summary>
        /// <returns></returns>
        public static string getNacosConfigContent() 
        {
            string path = NacosConfig.GetAppSetting(SnapshotPath);            
            NacosConfig.SnapshotPath = path;
            Logger.Info($"Nacos.Host={NacosConfig.Host};Nacos.Env={NacosConfig.Env};Nacos.DataId={NacosConfig.DataId};" +
                $"Nacos.DataId={NacosConfig.DataId};Nacos.Group={NacosConfig.Group};Nacos.Tenant={NacosConfig.Tenant};Nacos.SnapshotPath={path}");
            string config = Nacos.init().runOnce();
            return config;
        }

        /// <summary>
        /// 获取服务配置项内容,配置项内容是定义好的JSON
        /// </summary>
        /// <returns></returns>
        public static string getNacosConfigContent(string key)
        {
            string jsonContent = NacosUtils.getNacosConfigContent();
            
            JObject jsonObject = JObject.Parse(jsonContent);
            string value =(string) jsonObject[key];
            return value;
        }

    }
}

4.nacos页面

image.png

image.png

nacos 配置格式用的JSON,什么都可以,只要你能解析就行。

5.官方代码

nacos.net-master.rar

nacos代码下载 git仓库