1.前言
因历史.net framework4.5项目需要对接nacos,获取nacos中配置项,但现有的官方提供的最新demo 是.net core 版本,需要找到官方历史版本的 nacos.dll 包对接。故记录下对接过程。
2.使用.net
1.在nuget上找到nacos.dll,
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页面
nacos 配置格式用的JSON,什么都可以,只要你能解析就行。
5.官方代码
nacos.net-master.rar