2009-02-12 7 views
1

J'ai une table dans la base de données pour différents paramètres dans mon application. Ces paramètres peuvent être ajoutés ou modifiés à tout moment. Je voudrais les sortir de la base de données dans un objet et les référencer à la fois dans mon code serveur (C#) et le code client (JS).Propriétés de l'objet dynamique en C# et Javascript

SettingGroup SettingName  type  value 
Core   defaultPagingSize numeric 5 
Core   pagingType   text  dynamic 
Ecommerce showGallery  boolean true 

En javascript je peux les mettre dans un objet JSON et les référencer comme ceci:

var size = settings.core.defaultPagingSize; 

Y at-il une manière similaire, je peux le faire en C#?

int size = settings.core.defaultPagingSize; 

Répondre

2

n °

Le nouveau mot-clé dynamic qui sera ajouté pour .NET et C# 4.0 se chargera ce que vous êtes à la recherche, mais dans les versions actuelles .NET et C#, il n'y a pas de support pour cette .

Vous devriez être en mesure d'obtenir cela fonctionne bien:

int size = settings["core"]["defaultPagingSize"].ToInt32(); 

ou quelque chose de similaire.

2

En .NET, la réponse la plus immédiate serait d'utiliser un dictionnaire (peut-être imbriqué) de quelque sorte. C# 4.0 introduit quelques concepts dynamiques, mais vous devrez écrire un peu de code pour le faire fonctionner comme javascript.

Vous pouvez également les stocker sous forme d'enregistrements tapés dans une liste plate et utiliser LINQ:

var setting = settings.Single(x=>x.Group == "Core" 
     && x.Name == "defaultPagingSize"); 
int value = int.Parse(setting.Value); 
Questions connexes