我是IoC的新手,所以我想知道它是否是我想做的工作的合适工具. 我正在编写一个多租户应用程序,有几个地方我们可能希望根据当前登录用户所属的组织使用不同的接口实现. 比如说,例如
我正在编写一个多租户应用程序,有几个地方我们可能希望根据当前登录用户所属的组织使用不同的接口实现.
比如说,例如,当一个组织的用户创建工作订单时,需要向该用户的主管发送电子邮件.但对于所有其他组织,不需要发送该电子邮件.经典战略模式的东西.
我的问题是,我可以以某种方式指示IoC容器查看某个运行时值(在这种情况下是登录用户的OrganizationId),以确定要将IWorkOrderProcessor的哪个实现注入到需要它的对象的构造函数中?
我目前正在使用Windsor,但使用其他容器的例子会很好.
Windsor有一个扩展点,非常适合多租户应用程序:IHandlerSelector.> http://ayende.com/Blog/archive/2008/10/05/windsor-ihandlerselector.aspx
> http://mikehadlow.blogspot.com/2008/11/multi-tenancy-part-2-components-and.html
这使您可以将应用程序编码为不是多租户.多租户逻辑被移出业务逻辑.