Я не уверен, как сделать именованную зависимость с единством, чтобы следовать за другим пути разрешения. Так что, если у меня естьUnity IoC - разрешить именованную зависимость другой путь
public interface IService
{
SomeMethod();
}
public class Service : IService
{
private readonly IRepository repository;
public Service(IRepository repository)
{
this.repository = repository;
}
public SomeMethod
{
//some implementation here
}
}
и под меня Repository: IRepository, NHibernateContext: INHibernateContext, ISession и т.д.
Мой вопрос, если я сделать следующий шаг в моей Global.asax:
container.RegisterType<IService, Service>("GlobalContext");
, то как мне заставить его вставлять NHibernateContext (или некоторую другую иерархическую зависимость) в путь «GlobalContext» (не используя зарегистрированный по умолчанию тип)?
Справка очень ценится.
Thanks @Chris, я надеялся, что мне не нужно будет проходить через всю иерархию инжекции, установив каждый инжекторный конструктор отдельно (у меня есть 4 уровня впрыска atm, но представьте, что бы это было в более сложном сценарии). –
Возможно, что-то в новой версии Unity 3.0, связанной с регистрацией, может помочь? Я еще не использовал его, поэтому не могу сказать точно. –