Я пытаюсь создать класс Singleton, как показано ниже, где MyRepository
находится в отдельном проекте DAL. Это вызывает у меня круговую справочную проблему, потому что метод GetMySingleTon()
возвращает MySingleTon
класс и нуждается в его доступе. Точно так же мне нужен MyRepository
доступ в конструкторе класса MySingleTon
.Circular reference problem Singleton
public class MySingleTon
{
static MySingleTon()
{
if (Instance == null)
{
MyRepository rep = new MyRepository();
Instance = rep.GetMySingleTon();
}
}
public static MySingleTon Instance { get; private set; }
public string prop1 { get; set; }
public string prop2 { get; set; }
}
UPDATE: я делал это очень неправильно. Думаю, не нужен ни один синглтон. Теперь я создал класс со статическими свойствами в третьем проекте, и я устанавливаю его один раз и получаю его везде. И на данный момент он решил мою проблему.
Спасибо всем за ваши ответы.
Что делает MyRepository точно? Похоже, что он отвечает за возвращение экземпляра MySingleton. Если да, не можете ли вы заменить инициализатор на конструктор или статический метод и перейти в 'this', а не создавать новый репозиторий в MySingleton? –
Почему ты так делаешь? – jason