.net – 我可以使用IoC容器创建需要运行时值的依赖项吗?

前端之家收集整理的这篇文章主要介绍了.net – 我可以使用IoC容器创建需要运行时值的依赖项吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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

这使您可以将应用程序编码为不是多租户.多租户逻辑被移出业务逻辑.

猜你在找的设计模式相关文章