Servidor.mappath en C# classLibrary
-
20-09-2019 - |
Pregunta
¿Cómo puedo usar el método Server.Mappath en una clase de biblioteca de clase C#, que actúa como mi empresa de negocios para mi sitio web de ASP.NET?
Solución
Llamándolo?
var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
Asegúrese de agregar una referencia al ensamblaje System.Web.
Otros consejos
Puede obtener la ruta base utilizando el siguiente código y agregar su ruta necesaria con eso.
string path = System.AppDomain.CurrentDomain.BaseDirectory;
Debe hacer referencia a System.web y llamar:
HttpContext.Current.Server.MapPath(...)
Tal vez podrías abstraer esto como una dependencia y crear un IvirtualPathResolver. De esta manera, sus clases de servicio no estarían vinculadas al sistema.
Utilizar este System.web.hosting.hostingenvironment.mappath ().
HostingEnvironment.MapPath("~/file")
Me pregunto por qué nadie lo mencionó aquí.
HostingEnvironment.MapPath
System.Web.Hosting.HostingEnvironment.MapPath(path);
Architecturalmente, System.Web no debe referirse en la capa lógica de negocios (BLL). Emplee a BLL en la estructura de solución para seguir el principio separado de la preocupación, por lo que consulte el sistema. La vía es una mala práctica. BLL no debe cargar/ejecutar en el contexto ASP.NET. Por la razón por la que debe considerar usar System.AppDomain.CurrentDomain.BaseDirectory
en vez de System.Web.HttpContext.Current.Server.MapPath