2012-08-31 30 views
0

我正在創建一個控制檯應用程序,它需要調用嚴重依賴於HttpContext的方法。我可以模擬基礎HttpContext以及身份驗證,但是我無法設置HttpContext.Current.Application。有沒有可能在其中設置數據?從控制檯應用程序設置HttpContext.Current.Application

這裏有幾個問題在同一主題上,但無法從兩者中獲得解決方案,因此最終在此發佈了另一個問題。

我的目標是讓這個工作。

HttpContext.Current.Application("PageDefinitionCache") = pageDefinitions 

有什麼建議嗎?

回答

2

緩存位於ASP.NET輔助進程中,您無法直接從控制檯應用程序訪問它。 HttpContext.Currentnull,因爲您沒有在控制檯應用程序中使用aspx.net輔助進程。

考慮在控制檯應用程序中聲明一個全局變量來模擬HttpContext.Current.Application的行爲。

+0

感謝您的答覆。對不起,我沒有長時間關注這個問題。由於同樣的代碼庫也用於Web架構,所以我無法重新編寫或模擬Application對象。所以我通過填充必需的對象數據來解決我的問題,以防發現它爲'NULL'。通過這種方式,我可以使兩個體系結構的代碼運行良好。 – Kris

+0

現在,當我們再次實現類似的應用程序時,我們通過具有接口並實現它來使用Web應用程序的'HttpContext.Current.Application'併爲控制檯應用程序使用全局變量來實現它,以便通用代碼保持通用。 – Kris

0

您無法在控制檯應用程序中使用HttpContext。 由@matrxRapture提到您可以使用全局變量解決這個問題,如果你正在尋找當前目錄路徑的應用程序,你可以使用Assembly.GetExecutingAssembly()。位置

相關問題