У меня есть класс MyClass
со следующим конструктором:
public MyClass(IRepository repository, AnotherClass anObject) { ... }
Интерфейс IRepository
регистрируется при запуске приложения в Unity 2 для сопоставления с конкретным классом:
IUnityContainer container = new UnityContainer();
container.RegisterType<IRepository, MyConcreteRepository>();
Теперь конкретный экземпляр второго параметра конструктора всегда отличается в зависимости от контекста приложения.Поэтому я не могу зарегистрировать AnotherClass
в качестве конкретного экземпляра при запуске, и нет смысла позволять Unity создавать объект этого класса с его конструктором по умолчанию, что произойдет, если я вызову:
container.Resolve<MyClass>()
Это разрешаетна new MyClass(new MyConcreteRepository(), new AnotherClass())
.
То, что я ищу, если у меня есть какой-то конкретный объект anObject
типа AnotherClass
, это способ сказать Unity разрешить MyClass
до
new MyClass(new MyConcreteRepository(), anObject)
без постоянной регистрации экземпляра anObject
в контейнере.
Возможно ли это и как?
Заранее спасибо за помощь!