0
我已經繼承了設計很差的ASP.NET MVC 3應用程序。替換(和單元測試)Unity Manager會話對象?
我有238行,63個文件通過會話對象引用統一管理,像這樣:
UnityManager unity = (UnityManager)Session["UnityManager"];
此MVC應用程序在原本設定在20分鐘IIS會話超時託管的服務器,這對我的客戶造成嚴重破壞。您能想象IoC「經理」對象在20分鐘內結束它的生命週期,當我的用戶需要至少2小時嗎?!?!我最近重置IIS會話超時設置並將其更改爲120分鐘...
我現在想研究從我的應用程序中刪除UnityManager會話對象。我真的不明白如何做到這一點。
我也沒有在這個應用程序中真正困擾我的單元測試。我們通過當前的Session對象查看了單元測試Unity Manager,但無法弄清楚如何模擬它。
我的問題是:
- 什麼是引用統一管理沒有 Session對象,最好的辦法?我如何在我的控制器中調用並實例化它?
- 是UnityManager的Session對象的首選方法嗎?我的猜測 是不,這太可怕了。
- 我該如何測試當前的Unity Manager會話對象?
什麼是一個「UnityManager」嗎?這是您的IoC容器(UnityContainer)的抽象嗎?如果是這樣,你可以使用Microsoft.Practices.ServiceLocation.ServiceLocator(Unity)註冊你的容器,它將靜態地設置你的容器,而不是每個會話。每個會話確實不需要自己的IoC配置。 – agartee