【问题标题】:Castle Windsor 3 Beta 1 - ArrayResolver Dependencies Not InjectedCastle Windsor 3 Beta 1 - 未注入 ArrayResolver 依赖项
【发布时间】: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


    【解决方案1】:

    抱歉 - 经过进一步调查,我注意到某些组件未注册的问题。这段代码现在可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多