我想知道是否有一些最佳实践来实现我需要的功能。
我有一个 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/