【发布时间】:2010-03-10 16:25:06
【问题描述】:
我有一个场景,我需要知道特定类型当前是否可以由 Windsor 容器解析。皱纹是这种类型具有依赖性。所以我有一个实现IRefDataRepository 并依赖于IProductDataProvider 的ProductRepository 类。我需要知道我是否可以从容器中成功解析IRefDataRepository。
我尝试使用IKernel.HasComponent(typeof(IRefDataRepository)) IKernel.GetAssignableHandlers(typeof(IRefDataRepository)) 两者都返回ProductRepository,即使没有注册IProductDataProvider。 (所以IWindsorContainer.Resolve(typeof(IRefDataRepository))会抛出)
我当前的解决方案是编写一个扩展方法,它实际上尝试解析类型(通过IWindsorContainer.Resolve(IRefDataRepository)),捕获异常,如果类型解析则返回 true,否则返回 false。但我想知道是否有更好的方法。
【问题讨论】:
标签: c# castle-windsor