2010-07-01 7 views
0

Je possède ce DB tableau des « paramètres » qui est comme:Créer des attributs d'objet à la volée à partir d'un catalogue de paires nom/valeur?

MopedID, Nom, Valeur

Je veux faire un objet dans mon contrôleur de base qui est rempli avec des attributs de tout ce qui y est stocké.

Donc, si c'est:

32, « EnableHyperCanon », « vrai »

L'objet au moment de l'exécution lorsque je y accéder à partir de tous les contrôleurs qui héritent de la base auront accès à MopedSettings.EnableHyperCanon qui serait la valeur de chaîne "True".

L'objet ne serait jamais avoir des attributs que trouver pour ID 32.

Toute idée?

EDIT: Peut-être une meilleure idée serait MopedSettings ["EnableHyperCanon"] est-il un moyen de créer un objet qui fonctionne de cette façon?

Répondre

0

Pour faire votre objet indexable:

class MopedSettings 
{ 
    private Dictionary<string,object> _dic; 
    public object this[string s] { get { return _dic[s]; }; set { _dic[s] = value; } } 
} 

J'espère que cela aide.

+0

grâce, VS n'aime pas certains de vos points-virgules si – BigOmega

+0

Étrangement je reçois une référence d'objet est une erreur nulle lorsque vous essayez de remplir une instance de cet objet: Liste allSettings = (de cs dans db.CompanySettings où cs.CompanyID == company.CompanyID sélectionnez cs) .ToList(); foreach (CompanySetting cs dans allSettings) { companySettings [cs.Name] = cs.Value; } – BigOmega

+0

ouais, vous devrez initialiser le dictionnaire ('_dic = new Dictionary ();'), et le point-virgule après l'instruction 'get {}' n'est pas nécessaire. – fbstj

Questions connexes