IT TIP

C # 클래스 라이브러리의 Server.Mappath

itqueen 2021. 1. 9. 11:16
반응형

C # 클래스 라이브러리의 Server.Mappath


내 ASP.NET WEbsite에 대한 내 BusinessLayer 역할을하는 C # 클래스 라이브러리 클래스에서 server.mappath 메소드를 어떻게 사용할 수 있습니까?


전화해서?

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);

구조적으로 System.web은 BLL (Business Logic Layer)에서 참조해서는 안됩니다. 솔루션 구조에 BLL을 사용하여 별도의 관심 원칙을 따르므로 System.Web을 참조하는 것은 좋지 않습니다. BLL은 Asp.net 컨텍스트에서로드 / 실행되지 않아야합니다. System.AppDomain.CurrentDomain.BaseDirectory대신 사용을 고려해야하는 이유 때문에System.Web.HttpContext.Current.Server.MapPath

참조 URL : https://stackoverflow.com/questions/1199486/server-mappath-in-c-sharp-classlibrary

반응형