0

我有一个ASP.Net核心项目负责处理所有的Web请求,我有另一个项目负责读写数据库(实体框架核心项目)。 ,当然还有其他项目适合不同的事情,但现在让我们想象一下,为了简单起见,我们只有前两个项目。使用Asp.Net核心依赖注入注入类到其他项目

是否有可能如何使用ASP.Net核心依赖注入注入类到另一个项目(其他项目是库类而不是ASP.Net核心项目)?例如注入DbContext到我的实体框架项目?

+0

简短的回答是肯定的。有项目依赖于抽象,并有组成根注入具体实现到依赖项目中。 – Nkosi

+0

@Nkosi你能为我提供简单的代码吗?我没有完全理解你的意思。 –

+0

提供可用于重现当前问题的[mcve]。这将有助于为您提供更好的答案, – Nkosi

回答

2

这可能是你想做的事情是徒劳的?如果你是一个Asp.Net应用程序中运行,那么所有代码​​都可能从控制器调用,控制器可以得到你所需要的所有的依赖,并通过他们通过:

public class MyController : Controller 
{ 
    readonly MyComponent myComponent; 

    public MyController(MyDbContext dbctx) 
    { 
     myComponent= new MyComponent(dbctx); 
    } 
    // ...etc... 
} 

不过是一个你其他项目ConsoleAppService运行外部的Asp.Net应用程序?那么问题是,我可以参考Asp.Net.Core在Asp.Net之外使用DI吗?

我怀疑答案是'可能 - 是的',并且您的出发点是复制MS's builder code on github

但是,这会乞讨的问题,为什么选择在所有现有的DI容器外的Asp.Net DI? Castle.Windsor,AutoFac,StructureMap,Ninject等多年来都做得很好。