Как хранить данные, связанные с серверной схемой Blazor?

#blazor #blazor-server-side

#blazor #blazor-на стороне сервера

Вопрос:

Я повторно использую старый клиентский код WinForms в серверном приложении Blazor. Проблема в том, что код WinForms ожидает несколько статических переменных с состоянием, которые создаются при запуске приложения, а затем используются везде.

Я хочу заменить эти статические переменные статическими свойствами, которые хранят данные в статических переменных для WinForms и в каком-то хранилище данных, привязанном к схеме для сервера Blazor.

Я с удовольствием использовал HttpContext, но, похоже, он работает только в разработке, а не в производстве. Есть ли что-то эквивалентное HttContext для цепей Blazor? Может быть, словарь, где хранить данные? Или, по крайней мере, статическое свойство для получения идентификатора схемы?

Редактировать для уточнения:

Например, эти статические свойства присваиваются при входе пользователя в систему

 public class UserData
{
   public static int Id { get; set; }
   public static string Name { get; set; }
}
  

Я пытался изменить его на что-то вроде:

 public static int Id
{ 
    get
    {
        return (int)httpContext.Items["UserId"];
    }
    set
    {
        httpContext.Items["UserId"] = value;
    }
}
  

Эти статические значения используются везде в старом коде.

Комментарии:

1. Схемы приходят и уходят… Можете ли вы описать данные в терминах желаемого срока службы?

2. @HenkHolterman, я добавил некоторый код для пояснения.

3. Забудьте о статике, теперь вы на сервере. Сильно многопоточность.

4. Вы нашли решение своей проблемы?