Ho un metodo di estensione che utilizza alcune impostazioni di configurazione. Li ho dichiarati come static
.Durata delle variabili statiche in .NET
public static class Extensions
{
static string _mailServer = ConfigurationManager.AppSettings["MailServer"];
// ... etc
public static void SendEmailConfirmation(this IOrder order) { }
}
Volevo solo verificare che questo stia facendo ciò che intendo perché non sono sicuro al 100%. L'idea è che non voglio dover continuare a leggere questi valori, vorrei che venissero letti una sola volta e memorizzati nella cache per tutta la vita dell'applicazione web. E 'questo che accadrà? Grazie
Non leggerei da una configurazione in un metodo di estensione. Il tuo metodo di estensione dovrebbe funzionare per tutti gli ordini degli autori, ma il tuo funziona solo per IOrders in un'app configurata correttamente. –
Hmmm, non riuscivo a pensare in quale altro modo farlo. Il servizio di notifica non fa realmente parte del modello di dominio, ad esempio l'invio di un'e-mail non dovrebbe essere responsabilità dell'IOPORTO (che sostanzialmente contiene solo i dati dell'ordine). Così ho scritto estensioni che vengono chiamate dal mio controller quando voglio inviare una notifica di un cambiamento nello stato dell'ordine. Pensi che questo abbia senso? O ci sarebbe un modo migliore? – fearofawhackplanet
L'invio di e-mail è solitamente un problema trasversale in un'azienda. Creerei un servizio il cui unico scopo è quello di inviare e-mail. Puoi avere metodi specifici per e-mail specifiche che invii, ma sicuramente isolare l'e-mail che invia parte della tua app. –