gpt4 book ai didi

.net - 构造函数注入(inject) - 在哪里调用?

转载 作者:行者123 更新时间:2023-12-04 21:24:09 26 4
gpt4 key购买 nike

我对构造函数注入(inject)模式和规则有点困惑Don’t call the container; it’ll call you .

有人可以向我(也许还有其他人)解释一下,真正的应用程序应该如何使用构造函数注入(inject)来获得所有 DI 优势?我给出了一些简单的,我认为常见的例子:

DomainObject
RepositoryObject
DaoObject

关系很明显(我认为)-RepositoryObject 需要 DaoObject,DomainObject 需要 Repository。

使用构造函数注入(inject)我假设我可以(在大多数情况下)忘记 NEW 关键字,但是我应该何时、何地以及如何创建新对象(主要是域)?我必须为所有类(class)编写工厂吗?我应该引用那个工厂的DI Container吗?

最好的情况是有人向我展示一些真实的应用程序示例(请不要使用 Asp.Net MVC :))或绘制一些项目结构。

最佳答案

我不明白你的类(Class)关系,所以这里有一个更明显的 ;-) 例子:

class FooService
{
IFooRepository FooRepository { get; set; }

public Service(IFooRepository fooRepository)
{
this.FooRepository = fooRepository;
}
}

class Controller
{
IFooService FooService { get; set; }
IBarService BarService { get; set; }

public Controller(IFooService fooService, IBarService barService)
{
this.FooService = fooService;
this.BarService = barService;
}
}

正如你已经说过的 - 没有 new FooRepository()也不是 new FooService()代码在任何地方。

关于.net - 构造函数注入(inject) - 在哪里调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574621/

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