Un amico mi ha segnalato questa libreria che è davvero comoda e facile da usare per gestire dei templates (sostituzione di parametri in un file o stringa).

La libreria C# (è stato fatto il porting da Java) è scaricabile a questo indirizzo. Ci sono esempi e tutorials oltre che al Wiki.

 

Ecco l'esempio piu' semplice di utilizzo:

   1:  string template = "Il mio nome è $nome$ e ho $eta$ anni.";
   2:   
   3:  StringTemplate stringTemplate = new StringTemplate(template);
   4:  stringTemplate.SetAttribute("nome", "Paolo");
   5:  stringTemplate.SetAttribute("eta", "35");
   6:   
   7:  string result = stringTemplate.ToString();
   8:  // result conterrà "Il mio nome è Paolo e ho 35 anni."

 

Un altro esempio carino per gestire liste:

   1:  string template = "Questi sono i miei colleghi: $nome; separator=\", \"$.";
   2:   
   3:  StringTemplate stringTemplate = new StringTemplate(template);
   4:  stringTemplate.SetAttribute("nome", "Matteo");
   5:  stringTemplate.SetAttribute("nome", "Simone");
   6:  stringTemplate.SetAttribute("nome", "Nicola");
   7:   
   8:  string result = stringTemplate.ToString();
   9:  // result conterrà "Questi sono i miei colleghi: Matteo, Simone, Nicola."

Ci sono un sacco di altre possiblità, supporto per condizioni (IF), consente di gestire liste, oggetti, innesti di templates uno dentro l'altro, ecc..