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..