mercoledì 20 giugno 2012

Generazione di messaggi personalizzati

In questo esempio riesco a generare un messaggio a video a seconda dell'errore che puo' generare il programma.
Ma non è detto che non lo possa fare per un messaggio di avvertimento o operazione effettuata con successo.
Creo la classe per generare l'errore.
public class Message
{
    public static string GetMessaggio(string chiave, params object[] args)
    {
     return string.Format((string)System.Web.HttpContext.GetGlobalResourceObject("MessageEN", chiave), args); //se ad esempio ho i messaggi in inglese
        //return string.Format((string)System.Web.HttpContext.GetGlobalResourceObject("MessageIT", chiave), args); //se ad esempio ho i messaggi in italiano
  //return string.Format((string)System.Web.HttpContext.GetGlobalResourceObject("MessageRU", chiave), args); //se ad esempio ho i messaggi in russo
    }
}
Inserisco il punto dove potebbe verificarsi l'errore.
try
{
   //...istruzioni
}
catch (Exception ex)
{
 lbMsg.Text = Message.GetMessaggio("INSERT_KO");
 //...istruzioni
}
Creo le variabili nel file "MessageEN" sotto la directory "App_GlobalResources" del progetto, settandole con i messaggi che voglio far apparire a video; in questo caso in inglese, ma posso
creare un altro file con messaggi in altra lingua mantenendo le variabili.
Nell'App_GlobalResources inserisco la voce "INSERT_KO" e attribuisco il messaggio.
...
<data name="INSERT_KO" xml:space="preserve">
 <value>The operation failed. Contact support.</value>
</data>
...