2009-02-12 2 views
1

У меня есть таблица в базе данных для различных настроек в моем приложении. Эти настройки могут быть добавлены или изменены в любое время. Я хотел бы вытащить их из db в объект и ссылаться на них как на мой код сервера (C#), так и на клиентский код (JS).Свойства динамических объектов в C# и Javascript

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

В JavaScript можно просто поместить их в объект JSON и ссылаться на них, как это:

var size = settings.core.defaultPagingSize; 

Есть подобный способ, я могу сделать это в C#?

int size = settings.core.defaultPagingSize; 

ответ

2

No.

Новый dynamic ключевое слово, которое будет добавлено для .NET и C# 4.0 будет обрабатывать то, что вы ищете, но в настоящее время .NET и C версии #, нет никакой поддержки для этого ,

Вы должны быть в состоянии получить эту работу, хотя:

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

или что-то подобное.

2

В .NET самым непосредственным ответом было бы использование словаря (возможно, вложенного). В C# 4.0 представлены некоторые динамические концепции, но вам нужно написать справедливый бит кода, чтобы заставить его вести себя как javascript.

В качестве альтернативы, сохранять их в виде типизированных записей в виде плоского списка и использовать LINQ:

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

 Смежные вопросы

  • Нет связанных вопросов^_^