Ban*_*yan 23 dependency-injection .net-core asp.net-core asp.net-core-webapi visual-studio-2017
我已经通过链接:
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/dependency-injection
并了解到如何为Web API使用依赖注入.
如上面的链接所述,我可以使用Startup(Startup.cs)类在API层内部进行依赖注入.但是如何实现.NET核类库的依赖注入.下面是我如何添加类库的截图.

我的项目结构是
在项目"DataManagement.Repository"中,我编写了一个类"UserRepository",并在项目"DataManagement.Repository.Interfaces"中编写了一个接口"IUserRepository".
在"DataManagement.Business"项目中,我写了一个类"UserManager"
class UserManager
{
private IUserManager _userManager;
public UserManager(IUserManager userManager)
{
_userManager = userManager;
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试通过构造函数实现依赖注入.
但我不确定在.NET Core类库(.NET标准版)中启用依赖项注入需要做哪些更改.
Tse*_*eng 31
您不必在类库中执行任何操作.只有主应用程序具有组合根(应用程序生命周期中最早的点,您可以设置对象图).
这发生在Startup.cs您的ASP.NET Core应用程序中.你还注册了你的依赖项:
services.AddScoped<IUserManager,UserManager>();
Run Code Online (Sandbox Code Playgroud)
而已.类库没有组合根.它们都不应该,因为如果没有应用程序就无法使用它们,并且使用的IoC容器是应用程序的选择,而不是库的选择.
但是,您可以提供便捷方法来执行此注册,例如AddXxxASP.NET Core中常见的方法或某种模块系统,例如第三方IoC容器,如Autofac或Castle Windsor.
| 归档时间: |
|
| 查看次数: |
16220 次 |
| 最近记录: |