1

我在数据库中有一个表,用于我的应用程序中的各种设置。可以随时添加或更改这些设置。我想将它们从数据库中提取到一个对象中,并在我的服务器代码(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;
4

2 回答 2

2

不。

将为 .NET 和 C# 4.0 添加的新dynamic关键字将处理您正在寻找的内容,但在当前的 .NET 和 C# 版本中,不支持此功能。

你应该能够让它工作:

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

或类似的东西。

于 2009-02-12T11:23:21.240 回答
2

在 .NET 中,最直接的答案是使用某种字典(可能是嵌套的)。C# 4.0 引入了一些动态概念,但您需要编写相当多的代码才能使其表现得像 javascript。

或者,将它们作为类型化记录存储在平面列表中并使用 LINQ:

var setting = settings.Single(x=>x.Group == "Core"
         && x.Name == "defaultPagingSize");
int value = int.Parse(setting.Value);
于 2009-02-12T11:26:56.427 回答