Это звучит так, как будто вы ищете одноэлементный узор.
«Я имею в виду, что я хочу получить экземпляр для каждого приложения один раз».
Я предполагаю, что вы имеете в виду, что хотите создать экземпляр один раз для приложения.
Самый простой реализации заключается в использовании этого:
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.
}
Так прежде всего, я не уверен, если это хорошее решение. Авторизация, как правило, обновляется из разных приложений, поэтому было бы лучше сбросить аутентификацию раз в то время.
Во-вторых, обратите внимание, что функции-члены могут вызываться из нескольких потоков. Если вы хотите сделать это так, вы должны использовать блокировку для полей, которые вы используете (прямо или косвенно). Обязательно узнайте, что вы делаете.
Существует альтернативное решение, которое решает все это аккуратным способом (и тонна других проблем). Это называется базой данных; вы можете подумать об использовании этого.
Вы хотите, чтобы статический класс инициализировался один раз в каждом из приложений? Покажите код и, если возможно, фрагмент, который воспроизводит проблему. – Jite
Вы так понимаете, что отдельные процессы будут иметь отдельные копии статических полей и т. Д., Правильно? –
static is class level not instance level.check [link] (https://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx) – shreesha