Tengo un método de extensión que usa algunas configuraciones. Los he declarado como static
.Vida útil de variables estáticas en .NET
public static class Extensions
{
static string _mailServer = ConfigurationManager.AppSettings["MailServer"];
// ... etc
public static void SendEmailConfirmation(this IOrder order) { }
}
Solo quería comprobar que esto está haciendo lo que pretendo, ya que no estoy 100% seguro. La idea es que no quiero tener que seguir leyendo estos valores, me gustaría que se leyeran una vez y se almacenaran en caché durante toda la vida de la aplicación web. ¿Es esto lo que sucederá? Gracias
No leería desde una configuración en un método de extensión. Su método de extensión debería funcionar para todos los IOrders, pero su único trabajo para IOrders en una aplicación que está configurada correctamente. –
Hmmm, no podría pensar en qué otra cosa hacerlo. El servicio de notificación no es realmente parte del modelo de dominio, es decir, el envío de un correo electrónico no debe ser responsabilidad del IOrder (que básicamente solo contiene los datos del pedido). Así que escribí extensiones que son llamadas desde mi controlador cuando quiero enviar una notificación de un cambio en el estado del pedido. ¿Crees que eso tiene sentido? ¿O habría una mejor manera? – fearofawhackplanet
El envío de correo electrónico suele ser una preocupación transversal en una empresa. Crearía un servicio cuyo único propósito es enviar correos electrónicos. Puede tener métodos específicos para correos electrónicos específicos que envíe, pero definitivamente aislaré la parte de envío de correo electrónico de su aplicación. –