首页 > 解决方案 > 将对象相互注入

问题描述

我使用的典型架构由业务层中的 Manager 对象组成。我在 .NET Core/.NET Standard 中使用 DI/IOC。管理器被注入到服务层,因此服务被注入到我们的 API 控制器中。所以我目前在一个经理班工作。我现在需要一个驻留在另一个管理器类中的方法。通常我通过服务层返回到控制器,然后调用下一个服务,然后通过它调用管理器。

我想知道是否可以将我需要的 Manager 直接注入我正在工作的 Manager 中。因此切断返回控制器的行程,然后通过其他服务备份到其他管理器。基本上我有 2 * 经理。

public class TypeCodeManager : ITypeCodeManager
{
    public TypeCodeManager()
    {
    }

    public async Task<int> GetTypeCodeAsync(string typeCode, string code)
}

public class UserManager : IUserManager
{
     private readonly ITypeCodeManager _typeCodeManager;

     public UserManager(ITypeCodeManager typeCodeManager)
     {
        _typeCodeManager = typeCodeManager
     }
}

这通常是个好主意吗?

标签: c#.netdependency-injection

解决方案


我想说通过“经理”进入其他领域通常不是一个好主意,假设您的经理是与持久层对话的人。这将很快导致混淆依赖映射和代码。

您的服务是协调跨域关注点的更好层,因为它们可能描述跨域工作流并依赖于多个管理器。


推荐阅读