获取动态类型的属性

时间:2017-01-12 12:43:03

标签: c# object model-view-controller dynamic

我想知道如何获取动态类型的属性。

这是获取List的功能,

var result = _files.GetFileContent(reportId).Result;

作为示例,我得到一个像这样返回的对象:

enter image description here

当我打开它时,你可以看到我拥有的属性:

enter image description here

这个想法是我永远不知道这些属性。它们可以随着时间而改变。所以我想要一个充满所有属性的列表。所以我可以动态地使用它们。

如何从第一项获得属性(ChargesDelta_DIFF_5,ChargesEfile_RIGHT,ChargesGecep_LEFT等)?

2 个答案:

答案 0 :(得分:6)

您可以使用反射来获取属性并将其转换为字典:

[Int]

答案 1 :(得分:3)

如果有人仍在为此而挣扎(就像我一样),这可能会有用。

假设data是您要列出以下所有属性的动态

这对我有用

using System.ComponentModel;

...

dynamic data = new {
    value1 = 12,
    value2 = "asdasd",
    value3 = 98,
    value4 = "pgiwfj",
};

foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(data))
{
    Console.WriteLine("PROP: " + prop.Name);
}

...

然后它将输出:

  • PROP:value1
  • PROP:value2
  • PROP:value3
  • PROP:value4

来源:https://social.msdn.microsoft.com/Forums/vstudio/en-US/251e4f3d-ce90-444a-af20-36bc11864eca/how-to-get-list-of-properties-of-dynamic-object-?forum=csharpgeneral