nacos-sdk-csharp-unofficial
nacos-sdk-csharp-unofficial.Extensions.Configuration
NACOSBASE_SERVERADDRESS: Nacos服务的地址
NACOSBASE_DEFAULTTIMEOUT: 默认超时时间
NACOSBASE_NAMESPACE: Nacos命名空间
NACOSBASE_USERNAME: 用户名
NACOSBASE_PASSWORD: 密码
{
// 配置中心
"NacosConfig": {
// 监听配置
"Listener": {
"Listeners": [
{
"Group": "DATABASE_GROUP",
"DataId": "DatabaseConfig" //数据库配置
},
{
"Group": "CACHE_GROUP",
"DataId": "CacheConfig" //缓存配置
},
{
"Group": "SERVICE_GROUP",
"DataId": "TestServiceConfig" //本服务应用配置
}
]
}
}
}
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, configBuilder) =>
{
var configuration = configBuilder.Build();
// 启用环境变量
configBuilder.AddEnvironmentVariables();
configBuilder.AddNacosConfiguration(configure =>
{
// 基础连接配置
configure.ServerAddresses = new List<string>() { Environment.GetEnvironmentVariable("NACOSBASE_SERVERADDRESS").ToString() };
configure.DefaultTimeOut = Convert.ToInt32(Environment.GetEnvironmentVariable("NACOSBASE_DEFAULTTIMEOUT").ToString());
configure.Tenant = Environment.GetEnvironmentVariable("NACOSBASE_NAMESPACE").ToString();
configure.UserName = Environment.GetEnvironmentVariable("NACOSBASE_USERNAME").ToString();
configure.Password = Environment.GetEnvironmentVariable("NACOSBASE_PASSWORD").ToString();
// 监听配置
var listenerList = configuration.GetSection("NacosConfigisteneristeners").Get<List<ConfigListener>>();
configure.Listeners = listenerList;
});
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
public class AccountOptions : IOptions<AccountOptions>
{
public AccountOptions Value => this;
}
public class IMSettingsOptions : IOptions<IMSettingsOptions>
{
public IMSettingsOptions Value => this;
}
public void ConfigureServices(IServiceCollection services)
{
// 业务配置项
services.Configure<AccountOptions>(Configuration.GetSection("Account"));
services.Configure<IMSettingsOptions>(Configuration.GetSection("IMSettings"));
services.AddControllers();
}
public class WeatherForecastController : ControllerBase
{
private readonly AccountOptions _accountOptions;
public WeatherForecastController(IOptions<AccountOptions> accountOptions)
{
_accountOptions = accountOptions.Value ?? throw new Exception($"未获取到配置");
}
}
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |