ASP.NET Core appsettings.json mise à jour dans le code

Je suis actuellement en train de travailler sur le projet à l'aide de asp.net core v1.1, et dans mon appsettings.json j'ai:

"AppSettings": {
   "AzureConnectionKey": "***",
   "AzureContainerName": "**",
   "NumberOfTicks": 621355968000000000,
   "NumberOfMiliseconds": 10000,
   "SelectedPvInstalationIds": [ 13, 137, 126, 121, 68, 29 ],
   "MaxPvPower": 160,
   "MaxWindPower": 5745.35
},

J'ai aussi classe que j'utilise pour les stocker:

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; }
}

Et DI activé pour utiliser puis dans Démarrage.cs:

services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

Est-il possible de modifier et d'enregistrer MaxPvPower et MaxWindPower de Contrôleur?

J'ai essayé d'utiliser

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");
 }

Mais il n'a rien fait.

Il n'est pas clair ce que tu veux dire par "modifier et de les enregistrer." Êtes-vous vouloir "sauver" 1. pour mettre à jour appsettings.json ou 2. pour enregistrer seulement sa représentation en mémoire.
L'Option numéro 1, Sir. Ce que j'ai pu faire a été de déplacer ces deux paramètres dans un autre fichier - installationsettings.json, les enregistrer avec reloadOnChange dans le Démarrage de classe et lors de la mise à jour - modification du fichier, comme @Ankit suggéré plus tôt aujourd'hui.
Siemko, comment avez-vous mise à jour le json fichier de configuration? Avez-vous l'utilisation de la Configuration cadre ou avez-vous ouvrez le fichier à modifier?
J'ai ouvert le fichier, le modifier et l'enregistrer ensuite.
merci c'est le seul moyen que j'ai trouvé moi-même. Il serait plus agréable d'avoir dans IOptions une méthode pour enregistrer les modifications.

OriginalL'auteur Siemko | 2017-01-14