Очень простой вопрос здесь, но я изо всех сил пытаюсь найти информацию об этом. У меня есть очень простой иерархии родитель/ребенок ...Пользовательские объекты с Unity
public class Parent : IParent
{
[Dependency]
public IChild Child { get; set; }
}
public class Child : IChild
{
[Dependency]
public IParent Parent { get; set; }
}
... и мои регистрации контейнерные именно то, что можно было ожидать:
this.Container.RegisterType<IParent, Parent>();
this.Container.RegisterType<IChild, Child>();
Когда контейнер создает родительский экземпляр он автоматически создает и вводит новый экземпляр дочернего элемента, но как я могу добавить родительскую ссылку в этот дочерний элемент?
В основном я пытаюсь найти эквивалент Unity метода Ninject InScope
.
В этом случае, но все, что я использую в пользовательской области, так это то, что мне не нужно передавать интерфейсы по моей иерархии объектов. Разумеется, это не очень важно в простом случае, который я вам предоставил, но я мог видеть, как он выдувается в более крупном приложении. Другие рамки DI поддерживают его, я был бы удивлен, если Unity не имеет никакого механизма. –
@MarkFeldman Вы ищете что-то вроде Unity PerResolveLifetimeManager? Он повторно использует экземпляры для каждого разрешения, как описано в msdn по адресу http://msdn.microsoft.com/en-us/library/ff660872(v=pandp.20).aspx. Я думаю, что это будет выглядеть как 'this.Container.RegisterType (новый PerResolveLifetimeManager());' –
erli
Закрыть достаточно erli, спасибо! –