Я пытаюсь создать одноэлементный объект для конкретного пользователя в серверном приложении Blazor. Есть ли способ добиться этого с помощью системы внедрения зависимостей .NET Core? Я пробовал код ниже. Я создал класс SingletonTest.
public class SingletonTest
{
private int _counter;
public int Counter { get { return ++_counter; } }
}
Внедрил класс SingletonTest в Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<SingletonTest>();
}
Доступ к свойству Counter
в файле index.razor
@page "/"
@inject SingletonTest singletonTest;
Counter: @singletonTest.Counter
Когда я пытаюсь получить доступ к странице индекса в двух разных браузерах, оба обращаются к одному и тому же единственному экземпляру класса SingletonTest
. Есть ли способ сделать этот синглтон для конкретного пользователя? после закрытия браузера серверу необходимо удалить пользовательский одноэлементный объект и вызвать сборщик мусора.