Castle Windsor 3 Beta 1 - Зависимости ArrayResolver не вводятся - PullRequest
0 голосов
/ 18 ноября 2011

У меня проблема с Castle Windsor 3 Beta 1. Я использую ArrayResolver, который был добавлен в установщик следующим образом:

objContainer.Kernel.Resolver.AddSubResolver(New ArrayResolver(objContainer.Kernel, True))

Оттуда я регистрирую компонент и пытаюсьввести массив IWorkers.IWorkers имеют свои собственные зависимости.В случае, если указан только один IWorker, его зависимости разрешаются, но при передаче нескольких значений это не происходит.

Это не будет работать:

objContainer.Register(Component.For(Of Services.INotifiableService).ImplementedBy(Of Services.MyService).Named(GetType(Services.MyService).Name).DependsOn(Dependency.OnComponent(GetType(Services.Resolvers.IResolver), GetType(Services.Resolvers.MyResolver).Name), Dependency.OnComponentCollection(Of Services.Workers.IWorker())(GetType(Services.Workers.IWorkerImplementationA), GetType(Services.Workers.IWorkerImplementationB))).Interceptors(Of Logging.Interceptors.InfoLoggingInterceptor, Notifications.Interceptors.ServiceErrorInterceptor).LifeStyle.Transient())

Это будет:

objContainer.Register(Component.For(Of Services.INotifiableService).ImplementedBy(Of Services.MyService).Named(GetType(Services.MyService).Name).DependsOn(Dependency.OnComponent(GetType(Services.Resolvers.IResolver), GetType(Services.Resolvers.MyResolver).Name), Dependency.OnComponentCollection(Of Services.Workers.IWorker())(GetType(Services.Workers.IWorkerImplementationA))).Interceptors(Of Logging.Interceptors.InfoLoggingInterceptor, Notifications.Interceptors.ServiceErrorInterceptor).LifeStyle.Transient())

Я что-то упустил или это ошибка?

1 Ответ

0 голосов
/ 21 ноября 2011

Извинения - после дальнейшего расследования я заметил проблему, при которой определенные компоненты не регистрировались.Этот код теперь работает правильно.

...