gpt4 book ai didi

c# - 依赖注入(inject)初始化

转载 作者:太空狗 更新时间:2023-10-30 00:24:54 25 4
gpt4 key购买 nike

请注意:我刚刚开始使用 AutoFac 来了解 DI 和 IoC。

是否应该在 Controller 构造函数中初始化依赖注入(inject)?

这是怎么回事?

private IMyService iMyService;
public HomeController(IMyServices myService)
{
iMyService = myService;
}

不同于...

public IMyService iMyService = new MyService();

最后,似乎依赖关系仍然存在。

编辑:修复错别字,new MyService();是新的 IMyService();

最佳答案

Dependency Injection意味着完全依赖注入(inject)。它没有说任何关于初始化的事情。例如。如果您正在注入(inject)单例依赖项,那么它可以在您注入(inject)它之前很久就被初始化。

您的第一个代码是一个普通的 dependency injection via constructor .您的第二个代码不是依赖注入(inject)。实际上这对我来说看起来很奇怪 - 要么你正在尝试创建接口(interface)实例,这是不可能的,要么你在这里命名错误。如果只是错误的命名或拼写错误,那么第二个示例应该看起来像:

 public IMyService iMyService = new MyServiceImplementation();

但是你没有在这里注入(inject)任何东西。您只是在创建依赖实例(这使您的 Controller 耦合到依赖实现)。

关于c# - 依赖注入(inject)初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20834660/

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