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等多年來都做得很好。