Как настроить зависимости Array / List в коде с помощью Castle Windsor? - PullRequest
1 голос
/ 12 мая 2010

У меня есть следующие классы:

class Repository : IRepository
class ReadOnlyRepository : Repository

abstract class Command
abstract CommandImpl : Command
{
     public CommandImpl(Repository repository){}
}

class Service
{
    public Service (Command[] commands){}
}

Я регистрирую их в коде следующим образом:

var container = new Container("WindsorCOntainer.config");
var container = new WindsorContainer(new XmlInterpreter("WindsorConfig.xml"));
container.Kernel.Resolver.AddSubResolver(new ArrayResolver(container.Kernel));
container.AddComponent("repository", typeof(RentServiceRepository));
container.Resolve<RentServiceRepository>();
container.AddComponent("command", typeof(COmmandImpl));
container.AddComponent("rentService", typeof (RentService));
container.Resolve<RentService>(); // Fails here

Я получаю сообщение, что «RentService ожидает команды зависимости»

Что я делаю не так?

Спасибо

1 Ответ

2 голосов
/ 12 мая 2010

Вы не регистрируете CommandImpl как Command, вы регистрируете его как CommandImpl.

если вы делаете:

container.Register(Component.For<Command>().ImplementedBy<CommandImpl>());

это сработает.

Я предлагаю вам ознакомиться с документацией , особенно установщиками и API регистрации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...