2015-08-18 18 views
7

我正在學習ASP.NET 5 documentation(它比舊的更好,更好)。我明白ASP.NET 5包含一個簡單的內置控制(IoC)容器,它默認支持構造函數注入。據我所知,配置服務和依賴關係是在ConfigureServices()方法中完成的。ASP.NET 5如何注入啓動的依賴關係?

ConfigureServices()方法在StartUp方法後調用。

所以我的問題是ASP.NET 5如何在內部注入Startup的依賴關係?

我想知道,因爲如果我想注入另一個依賴項,例如IFooEnviroment我該怎麼做?

+2

啓動的依賴關係由宿主層注入(HostingEngine-> StartupLoader->用依賴關係實例化啓動類)......不確定你是否可以在這裏做任何事情......我可以問你爲什麼需要注入Startup構造函數?你的場景是什麼? –

+0

謝謝@KiranChalla。我只是想知道它是否可能。 –

+1

有點過時了,但這裏是我對類似問題的回答:http://stackoverflow.com/questions/29550647/dependency-injection-asp-vnext-how-is-this-working/29580182#29580182 –

回答

3

這種情況的邏輯住在Hosting層ASP.NET 5:

您當然可以在ConfigureServices註冊自己的服務。但是他們不會像你已經想到的那樣在構造函數中可用。沒有辦法將自己的服務添加到運行時服務。這是有道理的,因爲運行時間服務和應用程序服務應該有所不同。

然而,您可以在Configure()方法中注入ConfigureServices()方法中註冊的服務。

+0

那麼你的意思是沒有辦法將我的服務添加到運行時服務中? –

+0

嗯,你可以。但不是_before_'ConfigureServices()'。這是目前向服務提供商添加服務的唯一方式,無需接管完整的託管部分。 –