将一个类的属性链接到其他值
本文关键字:链接 属性 其他 一个 | 更新日期: 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);