多类库中的.Net核心依赖项注入

时间:2020-01-11 11:37:06

标签: c# .net-core dependency-injection architecture

以下是我希望实现的体系结构,但是我不确定如何去实现它。 注意:我目前正在将公司的解决方案从.Net MVC 4.7升级到.Net Core 3.1,因此我愿意提出建议。

核心Web应用(WebA)

  • 主站点
  • 打算将LibA,LibB和LibXYZ注册为服务。

图书馆基础/实用程序(LibA)

  • 该库可在多个站点(超过10个)中使用
  • 具有CompanyDbContext用于基本操作,例如用户,论坛,应用程序等。
  • 包含常见的操作和/或实用程序。

库身份验证(LibB)

  • 包含一系列实用程序,主要用于检查用户权限。
  • 该库需要LibA才能起作用。

库模块“特定于项目”(LibXYZ)

  • 包含特定于项目的DbContext,该项目使用LibA的DbContext中的userId。
  • 该库需要LibA起作用

我的问题是,我可以通过依赖注入轻松地从WebA的控制器访问不同的库。但是,我需要将LibA注入LibB和LibXYZ中,这就是问题所在。

我可以简单地将DbContext移到WebA,但是当ProjectA的上下文中发生更改时,这将导致严厉的处罚,因为这也需要在所有其他项目中缓解。在当前设置下,我保持合理的“关注点分离”。

如果我要简单地在LibB中实例化LibA,则意味着LibA将在请求期间创建多次。

0 个答案:

没有答案