将一个类的属性链接到其他值

本文关键字:链接 属性 其他 一个 | 更新日期: 2023-09-27 18:08:51

当使用一个类来表示从外部获得的一些数据时,我经常发现需要将该类的属性链接到数据的属性。我最熟悉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"));
...

将一个类的属性链接到其他值

c#有system . runtime . serializer . json . datacontractjsonserializer类http://msdn.microsoft.com/en-us/library/bb410770.aspx

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

http://json.codeplex.com/

我不擅长英语。如果我错了,我很抱歉

也许dynamic/ExpandoObject会让c#看起来更友好

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

dynamic v = new System.Dynamic.ExpandoObject();
((IDictionary<String, Object>)v).Add("test", 3);
Console.Write(v.test);