Wal*_*ter 4 c# model-view-controller dynamic object
我想知道如何获取动态类型的属性.
这是获取List的功能,
var result = _files.GetFileContent(reportId).Result;
Run Code Online (Sandbox Code Playgroud)
作为示例,我得到一个像这样返回的对象:
当我打开它时,你可以看到我拥有的属性:
这个想法是我永远不知道这些属性.它们可以随着时间而改变.所以我想要一个充满所有属性的列表.所以我可以动态使用它们.
如何从第一项获得属性(ChargesDelta_DIFF_5,ChargesEfile_RIGHT,ChargesGecep_LEFT等)?
Rod*_*A92 11
如果有人仍在为此苦苦挣扎(就像我一样),这可能会有用。
假设您要列出以下所有属性的动态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);
}
...
Run Code Online (Sandbox Code Playgroud)
然后它会输出:
您可以使用反射来获取属性并将其转换为字典:
dynamic v = new { A = "a" };
Dictionary<string, object> values = ((object)v)
.GetType()
.GetProperties()
.ToDictionary(p => p.Name, p => p.GetValue(v));
Run Code Online (Sandbox Code Playgroud)