我如何在C#类库类中使用server.mappath方法,该方法充当我的ASP.NET网站的业务layerer

有帮助吗?

解决方案

通过打电话?

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

确保添加对系统的引用。Web组件。

其他提示

您可以使用以下代码获得基本路径,并将所需的路径附加在一起。

string  path = System.AppDomain.CurrentDomain.BaseDirectory;

您应该参考system.web并致电:

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

也许您可以将其抽象为依赖性,并创建一个ivirtualPathresolver。这样,您的服务类就不会绑定到System.Web,如果您想在其他UI技术中重复使用逻辑,则可以创建另一个实现。

用这个 system.web.hosting.hostingenvironment.mappath().

HostingEnvironment.MapPath("~/file")

想知道为什么没有人在这里提到它。

HostingEnvironment.MapPath
System.Web.Hosting.HostingEnvironment.MapPath(path);

在架构上,系统.web不应在业务逻辑层(BLL)中引用。使用BLL进入解决方案结构以遵循关注原则的单独,因此请参阅系统。Web是一种不良实践。 BLL不应在ASP.NET上下文中加载/运行。因为您应该考虑使用 System.AppDomain.CurrentDomain.BaseDirectory 代替 System.Web.HttpContext.Current.Server.MapPath

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top