如何在C#类库类中使用server.mappath方法,以充当我的ASP.NET网站的业务层
通过调用它?
var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
确保您添加对System.Web程序集的引用。
string path = System.AppDomain.CurrentDomain.BaseDirectory;
HostingEnvironment.MapPath("~/file")
不知道为什么这里没有人提到它。
您需要引用System.Web并调用:
HttpContext.Current.Server.MapPath(...)
HostingEnvironment.MapPath
System.Web.Hosting.HostingEnvironment.MapPath(path);
从架构上来看,业务逻辑层(BLL)不应该引用 System.Web。为了遵循关注点分离原则,将 BLL 引入解决方案结构中,因此引用 System.Web 是一种不好的做法。BLL 不应在 Asp.net 上下文中加载/运行。因此,您应该考虑使用 System.AppDomain.CurrentDomain.BaseDirectory
而非 System.Web.HttpContext.Current.Server.MapPath
。