Leyendo archivos de App_Data desde App_Code

Este es un quicktip. Como saben ahora en ASP.NET 2.0, existen lo que se llaman Carpetas de Aplicación, App_Code, App_Data, App_Themes, App_Browsers, y las demás. Cada carpeta tiene una función específica y almacena un determinado tipo de archivo. Saben que es lo mejor?, que el contenido de estos archivos no se puede ver a través de peticiones web. Por ejemplo si tengo archivos XML con data que no quiero que vean directamente, lo guardo en App_Data y sólo será vista a través de código más no por peticiones web.

Ahora se presenta el siguiente caso, tengo un archivo XML el cual he guardado en la carpeta App_Data. Ahora ya lo puedo usar como un XMLDataSource, o puedo acceder de las páginas aspx, usando Server.MapPath.

Pero que pasa, si lo quiero llamar desde el código de un clase en App_Code?, ahí no tenemos disponible la propiedad Page, ni mucho menos Server.

Para este caso tenemos dos opciones, una es pasar como parámetro la propiedad Server desde la página donde se use este método de la clase de App_Code.

La otra opción es recuperar la propiedad Server del contexto actual, veamos la siguiente clase que esta en App_Code:

   public class cArea
   {

      public static DataTable Areas()
      {
         HttpServerUtility server = HttpContext.Current.Server;

         DataTable dtArea = new DataTable();

         dtArea.ReadXmlSchema(server.MapPath(“~/App_Data/dtAreas.xsd”));
         dtArea.ReadXml(server.MapPath(“~/App_Data/dtAreas.xml”));

         return dtArea;
      }

   }

Happy Coding :)!

Saludos,

Post cruzado

5 comentarios en “Leyendo archivos de App_Data desde App_Code”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *