我正在研究一個依賴Unity(IoC)進行DI的ASP.NET MVC5項目。有一天,我開始觀看Pluralsight課程「ASP.NET MVC 4的實用IoC」,而那個課程的人選擇Unity包中的Unity for MVC 4包(這裏說的是Nuget包),顯然你在文件中設置了所有內容稱爲Bootstrapper.cs,據我瞭解,它是由Nuget包創建和連接的。哪個適用於ASP.NET MVC 5的Nuget Unity軟件包?
我的項目沒有這個文件,但實際上引用了Unity.Mvc4(在課程中推薦的那個)。 Nuget軟件包管理器告訴我Unity.MVC4和Unity都安裝好了,Unity.MVC4依賴於Unity。
更糟糕的是,還有可從nuget.org獲得的用於ASP.NET MVC的Unity.MVC5和Unity引導程序。這只是我,還是有點混亂?
任何人都可以談談哪些Unity包與MVC 5實際合理嗎?
引導程序掛接到應用程序啓動事件等等中,還可以使用global.asax中的Application_Start事件。讓MVC成爲global.asax :-)不要這麼想。在引導程序中,您將創建Unity容器並執行映射。所以你總是需要Unity,但是它會被安裝上面提到的一個軟件包,比如Unity.MVC.Just刪除Unity.MVC引用,刪除軟件包文件中的引用並重建項目,然後再安裝它,自動創建四個引導程序文件。但是如果你使用MVC5,我會推薦Unity.MVC5 – Legends
是的,MVC有一個global.asax。從那裏我打電話到Startup.InitialiseUnityContainer,它工作得很好。我刪除了MVC4軟件包,並安裝了MVC5軟件包,無法區分它們,但仍然沒有看到Bootstrapper.cs文件。猜猜他們改變了MVC5。 –
這完全沒問題。 Bootstrapper只是一個.cs/.vb/etc。文件在哪裏你把你的啓動東西放在一個地方,哪些是使用WebActivatorEx掛鉤到事件管道。所以在global.asax中調用它形成app_start也很好。 – Legends