如何在C#类库类中使用server.mappath方法,该类充当My ASP.NET WEbsite的BusinessLayer
答案 0 :(得分:117)
通过调用它?
var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
确保添加对System.Web程序集的引用。
答案 1 :(得分:22)
您可以使用以下代码获取基本路径,并使用该路径附加所需的路径。
string path = System.AppDomain.CurrentDomain.BaseDirectory;
答案 2 :(得分:7)
您应该引用System.Web并调用:
HttpContext.Current.Server.MapPath(...)
答案 3 :(得分:4)
也许您可以将其抽象为依赖项并创建IVirtualPathResolver。这样,您的服务类就不会绑定到System.Web,如果您想在不同的UI技术中重用逻辑,则可以创建另一个实现。
答案 4 :(得分:4)
使用此System.Web.Hosting.HostingEnvironment.MapPath()。
HostingEnvironment.MapPath("~/file")
不知道为什么没有人在这里提到它。
答案 5 :(得分:1)
HostingEnvironment.MapPath
System.Web.Hosting.HostingEnvironment.MapPath(path);
答案 6 :(得分:1)
在架构上,不应在业务逻辑层(BLL)中引用System.web。将BLL应用到解决方案结构中遵循单独的关注原则,所以请参考System.Web是一种不好的做法。 BLL不应该在Asp.net上下文中加载/运行。因为您应该考虑使用str
代替get_lower_case()