我有一个负责处理所有Web请求的ASP.Net Core项目,我有另一个项目负责从数据库读取/写入(Entity framework Core项目)。 当然还有另外一个针对不同事物的项目,但我们现在想象一下,为了简单起见,我们只有前两个项目。
是否有可能如何使用ASP.Net Core依赖注入将类注入另一个项目(其他项目是库类而不是ASP.Net核心项目)?例如,将DbContext注入我的Entity框架项目?
答案 0 :(得分:2)
你想要做的可能是徒劳的吗?如果您在Asp.Net应用程序中运行,那么您的所有代码都可能从Controller调用,并且Controller可以获取您需要的所有依赖项,并将它们传递给:
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。
但那会引起一个问题,为什么选择Asp.Net DI而不是所有现有的DI容器呢? Castle.Windsor,AutoFac,StructureMap,Ninject已经完成了多年的工作。