Класс, получаемый экземпляром один раз двумя разными приложениями

Я создал класс для аутентификации моего проекта.

Я хочу использовать его на своем веб-сайте, а также в мобильном приложении, но почему у этого класса есть статический конструктор, и его нужно получить экземпляр один раз, это не сработало, я имею в виду, я хочу получить экземпляр для каждого приложения один раз.

Я хочу знать, как это исправить?

1 ответ

Для меня это звучит так, будто вы ищете одноэлементную модель.

"Я имею в виду, я хочу получить экземпляр для каждого приложения один раз".

Я предполагаю, что вы имеете в виду, что вы хотите создать экземпляр один раз для каждого приложения.

Самая простая реализация - использовать это:

public class MyAuth
{
    private static readonly MyAuth instance = new MyAuth();
    public static MyAuth Instance { get { return instance; } }

    private MyAuth()
    {
        // initialization goes here and will be called once
    }

    // Members. 
}

Итак, во-первых, я не уверен, что это хорошее решение. Авторизация обычно обновляется из разных приложений, поэтому может потребоваться время от времени сбрасывать аутентификацию.

Во-вторых, обратите внимание, что функции-члены могут вызываться из нескольких потоков. Если вы хотите сделать это так, вы должны использовать блокировку для полей, которые вы используете (прямо или косвенно). Будьте уверены, чтобы знать, что вы делаете.

Существует альтернативное решение, которое решает все это аккуратно (и множество других проблем). Это называется базой данных; Вы можете рассмотреть возможность использования этого.

Другие вопросы по тегам