2010-03-09 2 views
1

J'ai déjà fait un tour de table pour trouver une solution à mes besoins, sans succès.Créer automatiquement des propriétés - Hors d'une table de base de données

Disons que j'ai une table qui ressemble à ceci:

ID | KeyId | Nom | Description
1 | 153 | Monnaie | XXXXXXXX
2 | 68 | Signature | YYYYYYYY
3 | 983 | Contact | ZZZZZZZZ .

Maintenant, je veux accéder à ces valeurs pas par une collection, parce que je ne peux pas me souvenir de toutes les valeurs, disons pour le nom.

C'est donc pas ce que je veux: Values.Where (v => v.Name == "monnaie") Sélectionnez (v => v.KeyId);.

Le contenu de la table change rarement mais ce n'est toujours pas une bonne solution d'avoir une structure avec tous les "Noms" et d'obtenir le KeyId comme ceci.

struct Values 
{ 
    public static int Currency 
    { 
     get { return GetKeyId("Currency"); } 
    } 
} 

Je suis à la recherche d'une solution qui me crée propriétés automatiquement sur ce tableau. Alors que je peux accéder au KeyId avec intellisense. Comme vous avez pour les ressources dans ASP.NET. La classe est automatiquement mise à jour dès que vous ajoutez une nouvelle entrée dans le fichier RESX.

Par exemple: Valeurs.Currency, cela me renvoie le KeyId correspondant.

Merci pour la réponse

Répondre

0

Je crois que cette fonctionnalité a été ajoutée en C# 4.0 (pas encore publié), a annoncé au Microsoft PDC. Cependant, même cette solution peut ne pas vous donner Intellisense pour tout ce que vous n'avez pas déjà tapé explicitement (parce que si vous y pensez, il serait impossible pour Intellisense de vous aider à taper quelles valeurs pourraient être ajoutées dans le futur). D'ici là, la pratique standard est d'utiliser un dictionnaire et/ou Enum (mais le dictionnaire vous demandera de taper une chaîne, et l'énumération ne sera pas mise à jour automatiquement, ou les deux en utilisant un Enum comme clé du dictionnaire pour obtenir de l'aide d'intellisence).

+0

Cela me semble bien, nous allons voir si 4.0 aura cette fonctionnalité. Bien sûr, rien ne peut être ajouté à IntelliSense ce qui n'est pas tapé quelque part. Mais ce serait bien d'avoir le même comportement que pour les fichiers de ressources (RESX). Je ne sais pas si c'est une partie facile. Je vais essayer de trouver et de donner une mise à jour ici. merci pour votre réponse – Kosta

Questions connexes