Using Dependency Injection with .NET Core Class Library (.NET Standard)
我已经通过链接:
https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/dependency-injection
并了解了如何将依赖注入用于Web API。
如上面的链接所述,我可以使用Startup(Startup.cs)类在API层内部进行依赖项注入。但是如何实现.NET Core类库的依赖注入。下面是我添加类库的屏幕截图。
我的项目结构是
在项目" DataManagement.Repository"中,我编写了一个类" UserRepository",在项目" DataManagement.Repository.Interfaces"中,编写了一个接口" IUserRepository"。
在项目" DataManagement.Business"中,我编写了一个类" UserManager"
1 2 3 4 5 6 7 8 | class UserManager { private IUserManager _userManager; public UserManager(IUserManager userManager) { _userManager = userManager; } } |
如您所见,我正在尝试通过构造函数实现依赖项注入。
但是我不确定在.NET Core类库(.NET标准)中启用依赖项注入需要进行哪些更改。
您无需在类库中做任何事情。 只有主应用程序才具有合成根(可以在应用程序生命周期中最早设置对象图)。
这发生在ASP.NET Core应用程序的
1 | services.AddScoped<IUserManager,UserManager>(); |
而已。 类库没有合成根。 它们都不应该,因为没有应用程序就无法使用它们,并且所使用的IoC容器是应用程序的选择,而不是库的选择。
但是,您可以提供方便的方法来进行此注册,例如ASP.NET Core中常见的