Замок Виндзор + ISubDependencyResolver: странные проблемы
Замок Виндзор 2.5. Это не удается. Зачем? Это обозначено как поведение или ошибка? Кажется, преобразователи зависимостей даже не запрашиваются при разрешении служб верхнего уровня.
class Program
{
class Resolver :ISubDependencyResolver
{
public object Resolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency)
{
return new Program();
}
public bool CanResolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency)
{
return dependency.TargetType == typeof (Program);
}
}
[STAThread]
static void Main()
{
var container = new WindsorContainer();
container.Kernel.Resolver.AddSubResolver(new Resolver());
var xxx = container.Resolve<Program>();
}
}
1 ответ
Решение
Это преобразователи зависимостей. Они разрешают зависимости, а не корневые службы. Что ты на самом деле пытаешься сделать? Почему бы не зарегистрировать объект заранее?