я в настоящее время работаю над проектом с использованием ядра asp.net v1.1, и в моем appsettings.json у меня есть:ASP.N Co appsettings.json обновления в коде
"AppSettings": {
"AzureConnectionKey": "***",
"AzureContainerName": "**",
"NumberOfTicks": 621355968000000000,
"NumberOfMiliseconds": 10000,
"SelectedPvInstalationIds": [ 13, 137, 126, 121, 68, 29 ],
"MaxPvPower": 160,
"MaxWindPower": 5745.35
},
У меня есть класс, который я использовать для их хранения:
public class AppSettings
{
public string AzureConnectionKey { get; set; }
public string AzureContainerName { get; set; }
public long NumberOfTicks { get; set; }
public long NumberOfMiliseconds { get; set; }
public int[] SelectedPvInstalationIds { get; set; }
public decimal MaxPvPower { get; set; }
public decimal MaxWindPower { get; set; }
}
и возможность использовать затем в Startup.cs DI:
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
Является й как любой способ изменить и сохранить MaxPvPower
и MaxWindPower
от контроллера?
Я попытался с помощью
private readonly AppSettings _settings;
public HomeController(IOptions<AppSettings> settings)
{
_settings = settings.Value;
}
[Authorize(Policy = "AdminPolicy")]
public IActionResult UpdateSettings(decimal pv, decimal wind)
{
_settings.MaxPvPower = pv;
_settings.MaxWindPower = wind;
return Redirect("Settings");
}
Но это ничего не сделал.
Непонятно, что вы подразумеваете под «изменением и сохранением». Вы хотите «сохранить» 1. обновить appsettings.json или 2. сохранить только свое представление в памяти. –
Вариант № 1, сэр. То, что мне удалось сделать, это переместить эти два параметра в другой файл - installationettings.json, зарегистрировать их с помощью reloadOnChange в классе Startup и при обновлении - изменить файл, как @Ankit, предложенный ранее сегодня. – Siemko
Siemko, так как вы обновили файл настройки json? Вы использовали структуру конфигурации или вы открыли файл для его редактирования? – Manuel