У меня есть контейнер Ninject IoC, который имеет много привязок. Я связываюсь в своем скрипте linqpad.
Однако это происходит сбой, когда я пытаюсь запустить более одного раза, потому что при втором запуске есть несколько привязок для одних и тех же типов, поэтому при попытке получить из контейнера IoC происходит сбой.
Существует ли функция запуска или запуска приложения, которую я использую из Ninject, поэтому привязка происходит только один раз?
В программе MVC, например, я бы использовал Application_Start ()
Пример: в этой программе каждый раз, когда программа выполняется, счетчик выходных данных увеличивается. Есть ли событие запуска приложения, к которому я могу подключиться, чтобы сбросить счетчик?
Мои настоящие потребности в том, чтобы предотвратить двойное связывание ядер ninject, поэтому, пожалуйста, никаких «решений», которые исправляют синглтон, я знаю, что это не безопасно для потоков и т. Д.
void Main()
{
{
var x = Singleton.Instance;
Console.WriteLine(x.count++);
}
}
// Define other methods and classes here
public class Singleton
{
private static Singleton instance;
private Singleton() { }
public int count;
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
instance.count = 0;
}
return instance;
}
}
}