【发布时间】:2011-11-21 08:22:18
【问题描述】:
我在使用 Castle Windsor 3 Beta 1 时遇到问题。我正在使用已添加到安装程序中的 ArrayResolver,如下所示:
objContainer.Kernel.Resolver.AddSubResolver(New ArrayResolver(objContainer.Kernel, True))
从那里我注册一个组件并尝试注入一个 IWorkers 数组。 IWorker 有自己的依赖项。在只指定一个 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())
是我遗漏了一些简单的东西还是这是一个错误?
【问题讨论】:
标签: .net vb.net dependencies castle-windsor castle