2013-03-06 223 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

相关问题