c# - ruta al archivo en la biblioteca de clases
asp.net-mvc class-library (1)
Tengo un proyecto de biblioteca de clase (NotificationTemplate) que devuelve el contenido del archivo:
public static class Template
{
public static string NotificatioEmail
{
get { return File.ReadAllText("Templates//NotificatioEmail.cshtml"); }
}
}
En este proyecto se encuentra la carpeta Templates
con el archivo NotificatioEmail.cshtml
.
Además, tengo dos aplicaciones: la aplicación de consola y la aplicación ASP.NET MVC. El archivo se devolvió correctamente en la aplicación de la consola, pero en el MVC file not found
error. ¿Cómo escribir universalmente?
Intenté esto:
Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Templates",
"NotificatioEmail.cshtml")
pero BaseDirectory
no incluye la carpeta bin
.
Como dijiste, BaseDirectory
funciona para aplicaciones de consola. Para aplicaciones MVC, use RelativeSearchPath
lugar.
Así que puedes usar este código para ambas plataformas.
var appDomain = System.AppDomain.CurrentDomain;
var basePath = appDomain.RelativeSearchPath ?? appDomain.BaseDirectory;
Path.Combine(basePath, "Templates", "NotificatioEmail.cshtml");