Я новичок в использовании концепций Unity и IoC / DI. Я начал с этой концепции, прокрутив свое собственное шоу Джеймса Ковача на dnrTV в тесте.
В его примере контейнер выполнялся как одноэлементный доступ через статический метод в классе IoC, чтобы вы могли регистрировать типы при запуске и разрешать тип во всем приложении.
Я знаю, что это не было полнофункциональным и должно было в основном показать концепции IoC.
Я сейчас пытаюсь использовать Unity в проекте.
В моем Main () я создаю новый контейнер, но как только мои WinForms открываются, контейнер выходит из области видимости и удаляется. Позже в программе, когда я пытаюсь определить тип, у меня больше нет исходного контейнера и его зарегистрированных типов.
Есть ли какая-то концепция или конструктивная реализация, которой мне не хватает?
Моя текущая мысль - создать что-то вроде этого:
public static class Container
{
private static readonly object syncRoot = new object();
private static volatile IUnityContainer instance;
public static IUnityContainer Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
{
instance = new UnityContainer();
}
}
}
return instance;
}
}
}
Я почти уверен, что это сработает, просто это не так.