Состояние приложения ASP.NET Core
Я столкнулся с проблемой хранения переменных, которые управляют состоянием сайта. У меня есть класс, который хранит в сессии информацию о состоянии, но её приходится постоянно сереализовать/десерелизовывать после изменения какого-либо параметра. Как это можно сделать иначе? Быть может через внедрение зависмостей, или как?
public class SessionData
{
public User? User { get; set; }
public List<RolesMatchings>? RolesMatchings { get; set; }
public int? SelectedMatching { get; set; }
public string? SelectedRole { get; set; }
public int? CountRoles { get; set; }
public Stage? CurrentStage { get; set; }
public int? TutorID { get; set; }
}
Данный класс используется в контроллерах и страницах Razor.
Ответы (1 шт):
Вы можете изначально считывать параметры конфигурации из вашего файла appsettings.json или иного используемого а затем хранить как переменные статического класса в вашем приложении. Весь жизненный цикл приложения ваши параметры будут доступны и, при необходимости, по завершении приложения вы можете серриализовать и обновить ваш файл конфигурации.
Но в целом похоже что вы вовсе не должны хранить данные такого рода в файле конфигурации (по-крайней мере я не встречал необходимые ситуации в практике)