Preparedformat

Description

Classe qui permet de formater des chaînes à partir d'objets, d'indexeur, de tableaux en précisant le nom des champs et en scrutant ou en éxecutant éventuellement les membres des objets.
La recherche des membres est cachée à la première utilisation pour optimiser les exécutions successives.
il est possible de définir un système de constantes et des extensions de fonctions d'objets.

Source / Exemple :


//Utilisation "classique"
PreparedFormat format1 = new PreparedFormat("{0} {[1]}");
string testA = format1.Format("test 1", "test 2");
string testB = format1.Format("test 1", 2);

PreparedFormat format2 = new PreparedFormat("{ID} {[Value].ToLower().Mid(3,255)} {Value.Length} {$test}");

format2 .Overrides.Add("Mid", new Func<string, int, int, object>(( s, start, length ) => {
    if (start + length > s.Length) return s.Substring(start);
    return s.Substring(start, length);
}));

grid.GetConstants.Add('$', x => {
    switch (x) {
        case "test": return "toto";
        default: return null;
    }
});

//Utilisation avec un datareader, il est possible d'utiliser les noms ou les index des champs
IDataReader dr = ...
while (dr.Read()) {
    string test = format2.Format(dr);
}

//extraction des champs de l'objet
var o1 = { ID = 1, Value = "Value 1" };
var o2 = { ID = 2, Value = "Value 2" };
string test1 = format2.format(o1);
string test2 = format2.format(o2);

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.