2009-07-29 66 views

回答

110

通過調用呢?

var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx"); 

請確保您添加對System.Web程序集的引用。

+0

System.AppDomain.CurrentDomain.BaseDirectory我應該說,System.Web程序集不在.NET框架4 – Arash 2012-09-30 08:04:03

7

你應該參考的System.Web和撥打:

HttpContext.Current.Server.MapPath(...) 
4

也許你可以抽象這個作爲一個依賴,創造一個IVirtualPathResolver。這樣你的服務類就不會被綁定到System.Web,如果你想在不同的UI技術中重用你的邏輯,你可以創建另一個實現。

16

您可以通過使用以下代碼獲取基本路徑並附加所需的路徑。

string path = System.AppDomain.CurrentDomain.BaseDirectory; 
1

HostingEnvironment.MapPath

System.Web.Hosting.HostingEnvironment.MapPath(路徑);

0

體系結構上,System.web不應在業務邏輯層(BLL)中被引用。將BLL應用到解決方案結構中以遵循關注原則的單獨部分,因此請參閱System.Web是一種不好的做法。 BLL不應該在Asp.net上下文中加載/運行。由於的原因,你應該考慮使用,而不是System.Web.HttpContext.Current.Server.MapPath