gpt4 book ai didi

asp.net-mvc-3 - 在不使用第三方依赖解析器的情况下设置默认依赖

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

在一个外部库中,我有一个需要两个存储库依赖项的 Controller 。默认构造函数通过调用一个简单的工厂来创建依赖关系来很好地解决这些依赖关系。我想让我的库的订阅者能够覆盖任何依赖项,但在它们未被覆盖时使用默认依赖项。

举个例子:

public class LibraryController {
public LibraryController(IRepository1 repo1, IRepository2 repo2) {
}
}

他们可能会覆盖 IRepository1但不是 IRepository2 .我也不太了解 Dependency Injection或者我只是在这里遗漏了一些东西。

我不想强制依赖 NinjectStructureMapUnity创建默认依赖项。没有那个我怎么能做到这一点?

编辑:我可以根据不同的参数创建几个构造函数,但我希望有一个不同的解决方案。

最佳答案

DI 中的默认方法正是创建所有适当的 过载 .这很容易做到,不需要额外的库或框架。在您的情况下,只有四种可能的组合,所以还不错。

您可能会认为随着构造函数参数数量的增加,这变得笨拙,但您 shouldn't have too many dependencies首先。

作为一般规则,在使用构造函数注入(inject)时,最好只公开注入(inject)构造函数并删除默认值。将 DI 和默认构造函数结合起来是一种设计风格,我称之为 SCSS 注入(inject) .这很少是正确的方法。

关于asp.net-mvc-3 - 在不使用第三方依赖解析器的情况下设置默认依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6604563/

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