gpt4 book ai didi

dependency-injection - 将依赖注入(inject)与 .NET Core 类库 (.NET Standard) 结合使用

转载 作者:行者123 更新时间:2023-12-03 10:58:39 25 4
gpt4 key购买 nike

我已经浏览了链接:

https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/dependency-injection

并了解到我如何使用 Web API 的依赖注入(inject)。

正如上面链接中提到的,我可以使用 Startup (Startup.cs) 类在 API 层中进行依赖注入(inject)。但是.NET Core 类库如何实现依赖注入(inject)。下面是我如何添加类库的屏幕截图。
enter image description here

我的项目结构是

enter image description here

在项目“DataManagement.Repository”中,我编写了一个类“UserRepository”,在项目“DataManagement.Repository.Interfaces”中编写了一个接口(interface)“IUserRepository”。

在“DataManagement.Business”项目中,我编写了一个“UserManager”类

class UserManager
{
private IUserManager _userManager;
public UserManager(IUserManager userManager)
{
_userManager = userManager;
}
}

如您所见,我正在尝试通过构造函数来实现依赖注入(inject)。

但我不确定需要进行哪些更改才能在 .NET Core 类库(.NET 标准)中启用依赖注入(inject)。

最佳答案

你不必在你的类库中做任何事情。只有主应用程序有 composition root (您可以设置对象图的应用程序生命周期中的最早点)。

这发生在 Startup.cs在您的 ASP.NET Core 应用程序中。您还在那里注册您的依赖项:

services.AddScoped<IUserManager,UserManager>();

就是这样。类库没有组合根。它们也不应该,因为你不能在没有应用程序的情况下使用它们,并且使用的 IoC 容器是应用程序而不是库的选择。

但是,您可以提供方便的方法来进行此注册,例如 AddXxx ASP.NET Core 或某种模块系统中常见的方法,例如 Autofac 或 CaSTLe Windsor 等 3rd 方 IoC 容器。

关于dependency-injection - 将依赖注入(inject)与 .NET Core 类库 (.NET Standard) 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41323580/

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