Files
kenaito-conf/kenaito-conf-dotnet-client-demo/Program.cs
T
odboy 75443cd39e feat(clients): 各客户端支持环境变量配置,Spring Boot 2 客户端优化选择性刷新
- Dockerfile.springboot2: 更换基础镜像为阿里云私有镜像
- .NET/SpringBoot2 demo: 配置项改为从环境变量读取,支持 Docker 传参
- Spring Boot 2 客户端: @Value/@ConfigurationProperties 刷新优化为只刷新受变更 key 影响的字段
- README_DOCKERFILE.md: 标注 .NET 客户端 Docker 测试通过
2026-07-02 21:16:53 +08:00

54 lines
1.4 KiB
C#

using Kenaito.Conf.Client;
var config = new Config
{
BaseUrl = Environment.GetEnvironmentVariable("KENAITO_BASE_URL") ?? "http://localhost:8080",
AppName = Environment.GetEnvironmentVariable("KENAITO_APP_NAME") ?? "kenaito-springboot-demo",
Env = Environment.GetEnvironmentVariable("KENAITO_ENV") ?? "daily",
Version = Environment.GetEnvironmentVariable("KENAITO_VERSION") ?? "latest",
SyncInterval = int.TryParse(Environment.GetEnvironmentVariable("KENAITO_SYNC_INTERVAL"), out var si) ? si : 10,
CacheDir = Environment.GetEnvironmentVariable("KENAITO_CACHE_DIR") ?? ".",
Token = Environment.GetEnvironmentVariable("KENAITO_TOKEN")
};
var client = new Client(config);
client.OnChange(changed =>
{
Console.WriteLine("Config changed:");
foreach (var kv in changed)
{
Console.WriteLine($" {kv.Key} = {kv.Value}");
}
});
await client.StartAsync();
Console.WriteLine("Current configs:");
foreach (var kv in client.GetAll())
{
Console.WriteLine($" {kv.Key} = {kv.Value}");
}
var dbHost = client.Get("database.host");
Console.WriteLine($"\ndatabase.host = {dbHost}");
Console.WriteLine("\nListening for config changes... (press Ctrl+C to stop)");
var cts = new CancellationTokenSource();
Console.CancelKeyPress += (s, e) =>
{
e.Cancel = true;
cts.Cancel();
};
try
{
await Task.Delay(Timeout.Infinite, cts.Token);
}
catch (TaskCanceledException)
{
}
Console.WriteLine("\nShutting down...");
client.Stop();