Même si en programmation .net, on ne parle plus en tant que tel de "variables globales", ce concept est encore évocateur pour nombre de programmeurs et parfois nécessaire pour répondre à certains besoins de programmation. Pour faciliter ce stockage "global" (donc permanent et accessible depuis n'importe quel code), Mercator met à disposition un dictionnaire statique dans MercatorUi.Globals :
public static IDictionary<string, object> FreeTags
Par défaut, ce dictionnaire est instancié mais est vide. Il n'est jamais utilisé par Mercator. Par contre, il est possible d'y stocker autant d'informations à portée globale que souhaité. L'élément string correspond à la clé de l'entrée dans le dictionnaire. C'est par cette chaîne de caractères que la valeur sera recherchée, modifiée, ... L'élément object est la valeur à stocker en tant que telle. Elle peut être de n'importe quel type.
Les méthodes suivantes sur le dictionnaire peuvent notamment être utilisées :
-
Add(clé, valeur) : ajouter une entrée dans le dictionnaire
-
ContainsKey(clé) : tester si le dictionnaire contient déjà la clé
Attention : dans un dictionnaire la clé doit être unique. Si on fait appel à une clé qui n'existe pas, une exception est levée.
Cet exemple illustre bien le fonctionnement de ce concept : Module lié à la gestion des prestations : heure de début initialisée à l'heure de fin de la prestation précédente