caSTLe-windsor - CaSTLe Windsor - 仅注册组件一次

标签 castle-windsor castle

我想知道是否有一些最佳实践来实现我需要的功能。

我有一个 Web 应用程序,在启动期间,通过反射扫描某些程序集(插件)并注册它们对通用内核的依赖关系。

外部库可能需要相同的依赖项。

例如,库 A 被扫描并注册其依赖项 D1。然后扫描库 B 并尝试再次针对内核注册相同的依赖项 - D1 -。 如果我尝试两次注册相同的组件,CaSTLe 显然会提示。

我的问题是:当您只想跳过已经注册的组件时,您通常如何处理这种情况。 IWindsorContainer 上是否有一些扩展方法可以执行此任务?

提前致谢。

最佳答案

您可以在注册语句中使用:

Component.For<Test>.OnlyNewServices()

或者一次注册多个组件时:

Types.FromAssemblyContaining<Test>().InSameNamespaceAs<Test>().Configure(c => c.OnlyNewServices());

或者适合您的变体。请参阅此链接进行有条件注册:http://docs.castleproject.org/Windsor.Conditional-component-registration.ashx

关于caSTLe-windsor - CaSTLe Windsor - 仅注册组件一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699821/

相关文章:

entity-framework - 为什么DbContext每次都在dispose?

c# - 如何正确地将拦截器添加到没有 ILogger 类型的字段或属性的组件

dependency-injection - 在温莎城堡上携带 CreationContext.AdditionalArguments

inversion-of-control - CaSTLe.MicroKernel.ComponentNotFoundException - 单元测试时

c# - 使用 CaSTLe 动态代理拦截所有依赖项

c# - 如何注入(inject)在 Windsor 中注册的 MEF [ImportingConstructor] 依赖项?

.net - 在 .NET Web 应用程序中使用 CaSTLe DynamicProxy 的性能建议

c# - 如何仅使用 CaSTLe Core 2.5.2 中的 DictionaryAdapter?

c# - CaSTLe 温莎 FirstInterface().Configure(c=> c.LifeStyle.PerWebRequest)

dependency-injection - 温莎跟踪我的 transient 对象