我想寫一個適用於ASP.NET和獨立應用程序的類庫。在ASP.NET下運行時,需要一些行爲差異。推薦的方法是檢查庫是否在ASP.NET應用程序中運行?如何製作適用於ASP.NET和非ASP.NET應用程序的類庫?
我可以檢查HttpContext.Current
,因爲它似乎可靠地返回null時,ASP.NET下沒有運行。但是,在ASP.NET中的後臺線程上運行時,它也會返回null。
關於HttpContext.Current
或其他解決方案的任何意見?
添加:感謝您提供關於如何實現問題分離的所有建議。不過,我想補充一點,這個庫不會用於通用目的,所以對於我的特殊情況我不需要很大的靈活性。在我看來,迄今爲止最好的(在此線程中未提及)是檢查HttpRuntime.AppDomainAppId
靜態爲null,因爲即使對於ASP.NET後臺線程,它似乎也能正常工作。但是,這裏提供的各種解決方案肯定會對其他有更多普遍需求的人有所幫助。
將所有客戶端託管代碼? – 2009-12-23 00:00:28
<是否所有的客戶端都是託管代碼?>是的。 – 2009-12-23 00:44:28