1
我试图将一些使用Ninject的应用程序转换为Castle Windsor,这样我就可以消除一些依赖关系。Castle Windsor相当于ninject的WhenClassHas
我无法弄清楚如何使用windsor中的container.Register方法实现Ninject的一些功能。
即(在Ninject):
Kernel.Bind<ISessionProvider>().To<UnitOfWorkSessionProvider>();
Kernel.Bind<ISessionProvider>().To<ThreadSafeSessionProvider>()
.WhenClassHas<RequireThreadSafeSession>();
这告诉Ninject,建立具有ISessionProvider在构造一个类时,使用UnitOfWorkSessionProvider,除非它具有属性RequireThreadSafeSession,在这种情况下它被赋予一个ThreadSafeSessionProvider 。
问题一 - 这可以在温莎完成吗?该文件有点混乱。
问题二:如何做到这一点?似乎在AllTypes配置类中允许使用条件绑定,但使用模式并不透明