Создает ли метод AddSingleton<LoginState>() несколько экземпляров, если я размещаю это веб-приложение в среде с несколькими модулями?

Есть ли у нас более одного объекта LoginState, если мои приложения масштабируются до среды с несколькими модулями. Я пытаюсь захватить идентификаторы электронной почты зарегистрированных пользователей в объект класса и регистрирую его как Singleton, используя внедрение зависимостей. Создает ли это проблему, если приложение масштабируется до нескольких модулей? Я вызываю метод AddId(string emailId) при входе пользователя в систему и проверяю, что идентификатор emial вошедшего в систему пользователя уникален. Вызов RemoveId(string emailId) при выходе пользователя из системы. Если имеется несколько модулей, это создает проблему. Если один из модулей по какой-то причине выйдет из строя. Пользователь вынужден войти в систему, не так ли?

public class LoginState
{
    private List<string> loggedInUsers
          = new List<string>();

    public void AddId(string emailId)
    {
        if (!loggedInUsers.Contains(emailId))
        {
            loggedInUsers.Add(emailId);
        }
    }

    public void RemoveId(string emailId)
    {
        if (loggedInUsers.Contains(emailId))
        {
            loggedInUsers.Remove(emailId);
        }
    }

    public bool IsUserLoggedIn(string emailId)
    {
        return loggedInUsers.Contains(emailId);
    }
}

//Register service
services.AddSingleton<LoginState>()
Ипатий
Вопрос задан27 июня 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.