2013-03-06 214 views
0

我正在使用Server.Mappath並需要指定「System.Web.HttpContext.Current.Server」。作爲前綴。我能不能將它作爲一個包含而不是每個「服務器」的使用。這是在一個班級使用,而不是控制器,因此需要。我是否必須一直指定System.Web.HttpContext.Current.Server?

控制器代碼:

string strMapPath = Server.MapPath("~/XML/"); 

在類:

string strMapPath = System.Web.HttpContext.Current.Server.MapPath("~/XML/"); 

也適用於使用會話對象:

System.Web.HttpContext.Current.Session["MasterDocument"] = myDoc; 

這將是,如果我可以做的很好例如:

include System.Web.HttpContext.Current; 

但不可能。

想法?

謝謝。

回答

1

這應該工作

public class YourClass 
{ 
    public YourClass() 
    { 
     Server = System.Web.HttpContext.Current.Server; 
    } 

    protected HttpServerUtility Server 
    { 
     get; set; 
    } 

    public void SomeWork() 
    { 
     Server.MapPath("somepath"); 
    } 
} 
3

您可以使用使用別名指令;

using Server = System.Web.HttpContext.Current.Server; 

然後,這將允許您直接使用該控制器代碼;

string strMapPath = Server.MapPath("~/XML/"); 
+0

謝謝。然而.....只是試了一下,我得到一個錯誤:「System.Web.HttpContext.Current是一個屬性,但使用像一個類型使用」。思考??? – EdB 2013-03-07 00:11:00

+0

試試我的答案。有用。 – Parminder 2013-03-07 03:51:45

相關問題