繁体   English   中英

C#类库中的Server.Mappath

[英]Server.Mappath in C# classlibrary

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

通过打电话吗?

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

确保添加对System.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);

从体系结构上讲,不应在业务逻辑层(BLL)中引用System.web。 将BLL应用于解决方案结构中要遵循关注原则的分离,因此,请参阅System.Web是一个不好的做法。 BLL不应在Asp.net上下文中加载/运行。 由于这个原因,您应该考虑使用System.AppDomain.CurrentDomain.BaseDirectory而不是System.Web.HttpContext.Current.Server.MapPath

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM