我有一个ASP.Net核心项目负责处理所有的Web请求,我有另一个项目负责读写数据库(实体框架核心项目)。 ,当然还有其他项目适合不同的事情,但现在让我们想象一下,为了简单起见,我们只有前两个项目。使用Asp.Net核心依赖注入注入类到其他项目
是否有可能如何使用ASP.Net核心依赖注入注入类到另一个项目(其他项目是库类而不是ASP.Net核心项目)?例如注入DbContext到我的实体框架项目?
我有一个ASP.Net核心项目负责处理所有的Web请求,我有另一个项目负责读写数据库(实体框架核心项目)。 ,当然还有其他项目适合不同的事情,但现在让我们想象一下,为了简单起见,我们只有前两个项目。使用Asp.Net核心依赖注入注入类到其他项目
是否有可能如何使用ASP.Net核心依赖注入注入类到另一个项目(其他项目是库类而不是ASP.Net核心项目)?例如注入DbContext到我的实体框架项目?
这可能是你想做的事情是徒劳的?如果你是一个Asp.Net应用程序中运行,那么所有代码都可能从控制器调用,控制器可以得到你所需要的所有的依赖,并通过他们通过:
public class MyController : Controller
{
readonly MyComponent myComponent;
public MyController(MyDbContext dbctx)
{
myComponent= new MyComponent(dbctx);
}
// ...etc...
}
不过是一个你其他项目ConsoleApp
或Service
运行外部的Asp.Net应用程序?那么问题是,我可以参考Asp.Net.Core在Asp.Net之外使用DI吗?
我怀疑答案是'可能 - 是的',并且您的出发点是复制MS's builder code on github。
但是,这会乞讨的问题,为什么选择在所有现有的DI容器外的Asp.Net DI? Castle.Windsor,AutoFac,StructureMap,Ninject等多年来都做得很好。
简短的回答是肯定的。有项目依赖于抽象,并有组成根注入具体实现到依赖项目中。 – Nkosi
@Nkosi你能为我提供简单的代码吗?我没有完全理解你的意思。 –
提供可用于重现当前问题的[mcve]。这将有助于为您提供更好的答案, – Nkosi