何謂HttpContext上下文?
廣告:
HttpContext上下文,即ASPX的環(huán)境, 從HttpContext可以取到各種ASPX的信息。(Application級數(shù)據(jù), Session級數(shù)據(jù),當(dāng)前的Request/Response, Url, 安全設(shè)置等等~) 其實可以把它理解成 一個環(huán)境。
這是廣義上的上下文環(huán)境。aspx可以直接用Response,可以理解HttpContext獲取的上下文就是這個葉面上下文,用context.Response和直接用Response沒什么區(qū)別。但如果是業(yè)務(wù)邏輯.cs文件,就不是aspx環(huán)境了,是不能直接使用Response等操作的,需要先取得當(dāng)前上下文環(huán)境,就要用HttpContext。
如何才能從業(yè)務(wù)類中訪問會話狀態(tài)值?
回答:很簡單!使用 HttpContext.Current 獲取 Context 對象,然后訪問 Context.Session。
HttpContext.Current
返回當(dāng)前請求的 HttpContext 對象。如此我們就可以直接訪問Request、Response、Session、Application等對象,和Page中訪問等同。
我們無需再將Page用參數(shù)的方式傳遞到我們的類庫對象中。
HttpContext.Current.Session["name"] = "豬八戒";
string name = HttpContext.Current.Request.Param["name"];
HttpContext.Current.Response.Write("豬八戒好吃懶做!");
HttpRuntime
為當(dāng)前應(yīng)用程序提供一組 ASP.NET 運行時服務(wù)。我們可以通過這個類獲得當(dāng)前ASP.NET工程的一些信息。
HttpRuntime.AppDomainAppVirtualPath : 項目虛擬路徑
HttpRuntime.AppDomainAppPath : 項目物理路徑
HttpRuntime.BinDirectory : BIN目錄物理路徑
HttpRuntime.ClrInstallDirectory : CLR安裝路徑(可以用來獲取CLR版本號)
Response.Write(string.Format("AppDomainAppId: {0}<br>", HttpRuntime.AppDomainAppId));
Response.Write(string.Format("AppDomainAppPath: {0}<br>", HttpRuntime.AppDomainAppPath));
Response.Write(string.Format("AppDomainAppVirtualPath: {0}<br>", HttpRuntime.AppDomainAppVirtualPath));
Response.Write(string.Format("AppDomainId: {0}<br>", HttpRuntime.AppDomainId));
Response.Write(string.Format("AspInstallDirectory: {0}<br>", HttpRuntime.AspInstallDirectory));
Response.Write(string.Format("BinDirectory: {0}<br>", HttpRuntime.BinDirectory));
Response.Write(string.Format("ClrInstallDirectory: {0}<br>", HttpRuntime.ClrInstallDirectory));
Response.Write(string.Format("CodegenDir: {0}<br>", HttpRuntime.CodegenDir));
Response.Write(string.Format("IsOnUNCShare: {0}<br>", HttpRuntime.IsOnUNCShare.ToString()));
Response.Write(string.Format("MachineConfigurationDirectory: {0}<br>", HttpRuntime.MachineConfigurationDirectory));
輸出:
AppDomainAppId: /LM/W3SVC/1/Root/Learn.Test.Web
AppDomainAppPath: D:\System\My Documents\Visual Studio Projects\Learn.Test\Learn.Test.Web\
AppDomainAppVirtualPath: /Learn.Test.Web
AppDomainId: /LM/W3SVC/1/Root/Learn.Test.Web-9-127652564154400560
AspInstallDirectory: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
BinDirectory: D:\System\My Documents\Visual Studio Projects\Learn.Test\Learn.Test.Web\bin\
ClrInstallDirectory: c:\windows\microsoft.net\framework\v1.1.4322
CodegenDir: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\learn.test.web\41680132\7c880883
IsOnUNCShare: False
MachineConfigurationDirectory: c:\windows\microsoft.net\framework\v1.1.4322\Config
廣告: