gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:35:41 25 4
gpt4 key购买 nike

我是一名 IoC 新手,所以我想知道它是否适合我想做的工作。

我正在编写一个 Multi-Tenancy 应用程序,根据当前登录用户所属的组织,我们可能希望在几个地方使用不同的接口(interface)实现。

例如,当来自一个组织的用户创建工作订单时,需要向该用户的主管发送一封电子邮件。但对于所有其他组织,不需要发送该电子邮件。经典策略模式之类的东西。

我的问题是,我能否以某种方式指示 IoC 容器查看某个运行时值(在这种情况下为登录用户的 OrganizationId)以确定 IWorkOrderProcessor 的哪个实现?注入(inject)到需要它的对象的构造函数中?

我目前正在使用 Windsor,但使用其他容器的示例会很好。

最佳答案

Windsor 有一个非常适合 Multi-Tenancy 应用程序的扩展点: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

  • 这使您可以对应用程序进行编码,就好像它不是 Multi-Tenancy 一样。 Multi-Tenancy 逻辑已从您的业务逻辑中移出。

    关于.net - 我可以使用 IoC 容器来创建需要运行时值的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269720/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com