-1

当使用一个类来表示一些外部获取的数据时,我经常发现需要将该类的属性链接到数据的属性。我最熟悉 Javascript,所以当这个出现时,我首先想到的是创建一个数组,其中包含一个对象上的属性名称和外部数据上的属性名称。

例如,如果数据是:

var jsonObj = {
    "aString": "this is a string value",
    "aNum": "44235",
    "aColor: "125,125,125"
}

我可能会创建一个数组结构,例如:

var linker = [
    ["aString", "title", "string"],
    ["aNum", "userCount", "int"],
    ["aColor", "color", "color"]
]

跟踪源属性名称、新对象上的属性名称以及值的类型。我很难在非高级语言(如 C#)中考虑类似的解决方案。想到了反射,但似乎没有正确的使用它的地方。

如何在不执行以下操作的情况下将一组字符串与一组属性相关联?

obj.setTitle(data.getValue("aString"));
obj.setUserCount(data.getValue("aNum"));
obj.setColor(data.getValue("aColor"));
...
4

2 回答 2

0

也许dynamic / ExpandoObject会让 C# 看起来对你更友好

即你可以设置/获取dynamic对象初始化的任何属性ExpandoObject

dynamic v = new System.Dynamic.ExpandoObject();
((IDictionary<String, Object>)v).Add("test", 3);
Console.Write(v.test);
于 2013-04-13T04:05:52.260 回答
0

C# 有 System.Runtime.Serialization.Json.DataContractJsonSerializer 类 http://msdn.microsoft.com/en-us/library/bb410770.aspx

或者你可以使用 Json.NET。这是 Json 解析器。因此,您可以使用动态类型。

http://json.codeplex.com/

我英语说的不好。如果我错了,我很抱歉。

于 2013-04-13T03:55:11.693 回答