Ho un metodo che accetta un dizionario e valore enum e produce un output di stringa. Il valore Enum definisce quale stringa modello inserire le coppie di valori chiave del dizionario in.
public string InsertVariables(MessageType type, Dictionary<string, string> variables) { }
Funziona bene, ma ogni volta che lo uso, trovo difficile sapere cosa aggiungere alle variabili per assicurarmi che tutti i token nel modello vengano sostituiti e devo sempre dare un'occhiata ai template.
Quello che pensavo avrebbe funzionato come soluzione in questo caso è applicare i valori corretti aggiunti alle variabili durante il tempo di compilazione in questo modo:
public abstract class MessageVariables { }
public class NewUserMessageVariables : MessageVariables {
// different values go here parameters go here instantiated in the constructor
}
public string InsertVariables(MessageType type, MessageVariables variables) {
// converts variables object into dictionary for future insertion into the template.
}
Questo sembra far rispettare tutti i parametri richiesti nei messaggi.
Ho circa 16 messaggi con possibilità di averne altri in seguito.
DOMANDA: È eccessivo e dovrei limitarmi a usare il dizionario?