0

我得到了一个动态对象列表(SQL 查询的结果)。如果我知道要访问的列的名称,我可以访问特定元素的任何值。但是,有未知数量的名称未知的列。

如何从动态对象生成列名列表?我试图避免再次查询数据库以获取我应该在此列表中已有的信息。如果我能得到一个包含该表列名的字符串列表,我应该能够随意访问数据。

在此先感谢您的任何建议。

4

1 回答 1

3

dynamic可能意味着不同的东西。您需要查看的是对象实际上是什么。可能的选择:

  • 每列具有属性/字段的常规类型(可能即时生成) - 在这种情况下,反射将起作用
  • 一个元类型提供程序,它还实现了一个字典索引(检查IDictionary<string,object>等)——在这种情况下,转换为字典并访问键
  • 不提供字典的元类型提供程序 - 在这种情况下,这是...有问题的,但有时可以通过动态元对象 api 完成:http: //msdn.microsoft.com/en-us/library /system.dynamic.dynamicmetaobject.getdynamicmembernames.aspx
于 2013-07-05T21:02:25.983 回答