Клиентская библиотека .NET для чтения конфигураций с серверного узла.
Узел — это просто приложение .NET Core. Клиент подключается к узлу для чтения конфигураций. Любой узел может быть административной консолью для управления конфигурациями.
AgileConfig может использовать множество баз данных для хранения конфигураций.
dbprovider:
sqlserver = SqlServer
mysql = MySql
sqlite = Sqlite
npgsql = PostgreSql
oracle = Oracle
sudo docker run \
--name agile_config \
-e TZ=Asia/Shanghai \
-e adminConsole=true \
-e db__provider=sqlite \
-e db__conn="Data Source=agile_config.db" \
-p 5000:5000 \
-v /etc/localtime:/etc/localtime \
#-v /ваш_хостовой_каталог:/app/db \
-d kklldog/agile_config:latest
Установите библиотеку клиента с помощью NuGet:
Install-Package AgileConfig.Client
Добавьте секцию agileconfig
в файл appsettings.json
:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
``` //agile_config
"AgileConfig": {
"appId": "app",
"secret": "xxx",
"nodes": "http://localhost:5000,http://localhost:5001",
"name": "client_name",
"tag": "tag1",
"env": "dev"
}
}
appsettings.json
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
//по умолчанию appsettings.json
config.AddAgileConfig(arg => Console.WriteLine($"Конфигурация изменена, действие: {arg.Action}, ключ: {arg.Key}"));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
-----или-----
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAgileConfig(e => Console.WriteLine($"конфигурации {e.Action}"))
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
appsettings.{env}.json
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var envName = context.HostingEnvironment.EnvironmentName;
var configClient = new ConfigClient($"appsettings.{envName}.json");
config.AddAgileConfig(configClient, arg => Console.WriteLine($"Конфигурация изменена, действие: {arg.Action}, ключ: {arg.Key}"));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
```## Чтение конфигурации```c#
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IConfiguration _configuration;
private readonly IOptions<DbConfigOptions> _dbOptions;
public HomeController(ILogger<HomeController> logger, IConfiguration configuration, IOptions<DbConfigOptions> dbOptions)
{
_logger = logger;
_configuration = configuration;
_dbOptions = dbOptions;
}
public IActionResult Index()
{
return View();
}
/// <summary>
/// Чтение данных с помощью IConfiguration
/// </summary>
/// <returns></returns>
public IActionResult ByIConfiguration()
{
var userId = _configuration["userId"];
var dbConn = _configuration["db:connection"];
ViewBag.userId = userId;
ViewBag.dbConn = dbConn;
return View();
}
/// <summary>
/// Чтение данных с помощью Options
/// </summary>
/// <returns></returns>
public IActionResult ByOptions()
{
var dbConn = _dbOptions.Value.connection;
ViewBag.dbConn = dbConn;
return View("ByOptions");
}
}
Инъекция зависимостей
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAgileConfig();
}
}
public class HomeController : Controller
{
private readonly IConfigClient _configClient;
public HomeController(IConfigClient configClient)
{
_configClient = configClient;
}
public IActionResult Index()
{
return View();
}
/// <summary>
/// Чтение данных с помощью IConfigClient
/// </summary>
/// <returns></returns>
public IActionResult ByIConfigClient()
{
var userId = _configClient["userId"];
var dbConn = _configClient["db:connection"];
foreach (var item in _configClient.Data)
{
Console.WriteLine($"{item.Key} = {item.Value}");
}
ViewBag.userId = userId;
ViewBag.dbConn = dbConn;
return View();
}
}
```## Скриншоты






## Донат
Если данный проект был полезен вам, пожалуйста, используйте QR-код ниже для покупки чашки кофе.
<img src="https://ftp.bmp.ovh/imgs/2021/07/c0146fa995e8074d.jpg" width="300">
<img src="https://ftp.bmp.ovh/imgs/2021/07/1c8748c5732b8fbe.jpg" width="300">## благодарю 💖💖💖
Да Пин ¥66.66, Шоу Цзао ¥6.66 + 88, Жиана ¥10.00, Нуллабл ¥9.99, Сан ¥6.66, ХХМ ¥6.66, Ю ¥6.66, Улыбающийся убийца ¥6.66, Фэй Нiao Yu ¥38.88, Ханг ¥9.90, Ла ¥6.66, Хай ¥6.66, Дыкс Дэн Ян Си ¥30
## связаться со мной
почта: minj.zhou@gmail.com
группа QQ: 1022985150
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )