2015-07-29 3 views
0

Я создал класс для аутентификации моего проекта.Класс, который получает экземпляр один раз двумя различными приложениями

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

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

+0

Вы хотите, чтобы статический класс инициализировался один раз в каждом из приложений? Покажите код и, если возможно, фрагмент, который воспроизводит проблему. – Jite

+1

Вы так понимаете, что отдельные процессы будут иметь отдельные копии статических полей и т. Д., Правильно? –

+0

static is class level not instance level.check [link] (https://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx) – shreesha

ответ

0

Это звучит так, как будто вы ищете одноэлементный узор.

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

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

Самый простой реализации заключается в использовании этого:

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. 
} 

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

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

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

+0

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

Смежные вопросы