c# - 将对象相互注入
问题描述
我使用的典型架构由业务层中的 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
}
}
这通常是个好主意吗?
解决方案
我想说通过“经理”进入其他领域通常不是一个好主意,假设您的经理是与持久层对话的人。这将很快导致混淆依赖映射和代码。
您的服务是协调跨域关注点的更好层,因为它们可能描述跨域工作流并依赖于多个管理器。
推荐阅读
- mql5 - MQL5 测试时不截屏
- asp.net - 无法加载文件或程序集“log4net”或其依赖项之一,即使在删除 log4net 之后也是如此
- ruby - 我可以使用 Selenium 和 Nokogiri 根据附近的标签定位元素吗?
- android - Android: App Crashes on LaunchActivity {java.lang.SecurityException}
- typescript - Typescript 定义子类映射并在运行时创建子类
- excel - Excel VBA 代码不支持使用自定义名称将 PPT 保存在自定义位置
- java - 在itext7中,如何按添加时间更改附件显示顺序
- python - python matplotlib - How to plot 3+1 dimension data?
- sql - shortssize = S 中查询表达式中的字符串语法错误
- php - 在 Laravel 中配置 Redis 时遇到的问题