首页 新闻 赞助 找找看

Apollo 配置的值为json格式,.net core 里能获取到吗

0
悬赏园豆:5 [已解决问题] 解决于 2021-04-09 11:17

使用Configuration.GetSection("ConsulDiscovery").Get<ConsulDiscoveryOption>();获取不到这个对象

public class ConsulDiscoveryOption
{
/// <summary>
/// 站点的端口,还有服务发现之后健康检查的端口
/// </summary>
public int Port { get; set; }
/// <summary>
/// 服务名称
/// </summary>
public string ServiceName { get; set; }
/// <summary>
/// Consul路劲
/// </summary>
public string ConsulUrl { get; set; }
/// <summary>
/// 服务Id,一定要唯一
/// </summary>
public string NodeId { get; set; }

    public string Tags { get; set; }
}

有没有什么办法能支持直接获取出来之后转成对象

bigsy的主页 bigsy | 初学一级 | 园豆:197
提问于:2021-02-22 17:59
< >
分享
最佳答案
0


Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, builder) =>
{
builder.AddApollo(builder.Build().GetSection("Apollo")).AddNamespace("json_cfg", ConfigFileFormat.Json);
})

var s = Configuration.GetSection("apollocfg2").Get<ApolloCfg>();

收获园豆:5
王叫兽 | 菜鸟二级 |园豆:216 | 2021-04-09 09:44

var s = Configuration.GetSection("apollocfg2").Get<ApolloCfg>();看我提问,我就是使用这种方式,当然是获取不到的

bigsy | 园豆:197 (初学一级) | 2021-04-09 09:50

@bigsy: 既然配置json格式,namespace必须是json类型,你截图配置它只是一个字符串,获取后你想转化为对象,那么肯定是空了。
第一步:添加namespace json 类型
第二步:AddNamespace() 指明ConfigFileFormat.Json
第三步:Configuration.GetSection("apollocfg2").Get<ApolloCfg>();

王叫兽 | 园豆:216 (菜鸟二级) | 2021-04-09 09:55

@王叫兽:

最后获取还是不行
var minioConfig1 = Configuration.GetSection("MinioConfig").Get<MinioConfig>();

namespace必须是json类型这个是说在apollo里设置为json?还有你上面那张图"T文本"这个怎么可以显示json格式,我这边显示的文本格式

bigsy | 园豆:197 (初学一级) | 2021-04-09 10:49

@bigsy: 从你截图上看,你的namespce是properties类型,配置不对。
要求创建Namespace 时候就要选择Json类型,看我的截图

王叫兽 | 园豆:216 (菜鸟二级) | 2021-04-09 10:52


看此图,你应该就明白了

王叫兽 | 园豆:216 (菜鸟二级) | 2021-04-09 10:56

@王叫兽: 可以了,果然是要配置成json格式的,谢了兄弟!

bigsy | 园豆:197 (初学一级) | 2021-04-09 11:15
其他回答(1)
0

你可以在创建namespace的时候选择私有的, 格式选择json,配置内容大概是:

{
    "RedisOptions":{},
    "ConsulDiscovery":{}
}

添加的时候: builder.addnamespace("my private namespace name",enum.json);

使用: builder.build().get<ConsulDiscoveryOption>("ConsulDiscovery")

伪代码大概就是这样子了

czd890 | 园豆:14292 (专家六级) | 2021-02-22 19:14

你有这方面的博文吗?

支持(0) 反对(0) bigsy | 园豆:197 (初学一级) | 2021-02-23 09:37

@bigsy: 没有,这个比较简单,伪代码说明一切

支持(0) 反对(0) czd890 | 园豆:14292 (专家六级) | 2021-02-23 09:43

@czd890: 好的,我试下

支持(0) 反对(0) bigsy | 园豆:197 (初学一级) | 2021-02-23 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册