2009-11-24 4 views
0

J'ai développé un système de configuration qui me permettrait de facilement mettre à jour et d'accéder aux valeurs de configuration sur plusieurs destinations et j'ai un problème de conception.Problème de conception - Gestion de deux types de données dans une seule structure

Le problème ressemble à ceci. J'ai une classe appelons-le FooConfig. Cette classe est fondamentalement un objet de transfert de données, tout ce qu'il possède est des propriétés. Maintenant, le système de config est capable de prendre n'importe quelle classe (dans ce cas, cela prendra FooConfig) et de réfléchir sur toutes les propriétés qui ont des méthodes get et set. Il prendra alors ces valeurs et remplira une autre classe appelée ConfigSettings. La classe ConfigSettings contient essentiellement une collection de structures de propriétés et d'autres éléments, mais ce n'est pas important. Le problème auquel je suis confronté est que j'ai une structure (appelée propriété) qui contient les données individuelles collectées à partir de FooConfig et qui est conservée dans ConfigSettings. C'était bien quand je stockais des données dans un simple scénario de valeur clé, mais maintenant je dois être en mesure de stocker des collections et des valeurs uniques dans la structure de la propriété.

Alors je me demandais si quelqu'un avait des idées sur la façon de gérer une collection et une seule valeur d'une manière propre et agréable. Normalement je créerais deux structures séparées mais la structure de propriété doit être accessible à partir de la classe ConfigSettings et j'ai besoin d'Immutability.

Répondre

0

Pour votre collection Key/Value, vous pouvez utiliser un objet Dictionnary.

Par exemple

Class ConfigSettings 
{ 
    struct Property 
    { 
     Dictionary<int, string> mydict = new Dictionary<int,string>(); 
     int somevalue; 
    } 
} 

dictionnaires sont assez faciles à gérer et garder une trace des éléments à l'intérieur.

Questions connexes