Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
ObjectFactory.GetInstance()
В принципе тоже не совсем серебряная пуля. по хорошему контейнер должен передаваться в контексте, иначе разные компоненты не смогут получать разную реализацию интерфейса.
if (x == null) x = new X(); return x;, можно смело использовать Lazy<T>Lazy<T>. Если нужно другое поведение, оно прописывается в контейнер как фабричный метод (Func<T>). Так что код нужно переписать только в одном месте.[Dependency]
private Lazy<IProductRepository> ProductRepository {get; set;}
PostSharp. Отложенная загрузка зависимостей