gpt4 book ai didi

.NET IoC : Configure library components from (application) composition root

转载 作者:行者123 更新时间:2023-12-04 06:12:22 27 4
gpt4 key购买 nike

我有一个库处理与我在大多数应用程序中使用的数据库后端的交互,现在想要转换为 IoC 结构(在内部使用 Autofac,但它的使用不应该依赖于特定的 IoC 容器,甚至根本不依赖于使用一个)。我将如何以“默认”方式连接库的内部依赖项,而无需应用程序处理它,但在必要时能够提供其他实现?

例如:库可以存储和读取用户硬盘上不同后端服务器的连接凭据。这些信息的一部分,至少是密码,是加密的,通常使用库中定义的默认加密——所以通常我不想关心使用库的应用程序中的细节。但在某些情况下,当从我的应用程序调用登录方法时,我需要提供不同的加密算法(例如,通过 IConnectionEncryption 接口(interface))。

我需要在我的库和应用程序中做什么才能实现这一目标?

最佳答案

一般来说你想要应用程序来处理它。您自己说过 - 您想在应用程序组合根目录中进行 DI 容器配置(这是最佳实践)。

如果您将 DI 容器的任何知识保留在库之外,其他开发人员将能够使用他们选择的容器(或根本没有容器)。

反过来,你可能会得到类似 Rhino Service Bus 的结果。这(大部分)取决于特定的 DI 容器。如果您的项目是开源的,您可能会收到与容器 X、版本 Y 兼容的请求。即使它是闭源的,您的团队也可能希望有一天更改容器。

希望@Mark Seemann 能给出一个规范的答案。 :)

关于.NET IoC : Configure library components from (application) composition root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640282/

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