Свойства динамических объектов в C # и Javascript - PullRequest
1 голос
/ 12 февраля 2009

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

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 ]

2 голосов
/ 12 февраля 2009

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

Либо сохраните их в виде напечатанных записей в плоском списке и используйте LINQ:

var setting = settings.Single(x=>x.Group == "Core"
         && x.Name == "defaultPagingSize");
int value = int.Parse(setting.Value);
2 голосов
/ 12 февраля 2009

номер

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

Вы должны быть в состоянии заставить это работать хотя:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...