一尘不染

通过字符串获取C#动态属性的值

c#

我想dynamic使用字符串访问c#属性的值:

dynamic d = new { value1 = "some", value2 = "random", value3 = "value" };

如果我只有“ value2”作为字符串,如何获得d.value2的值(“随机”)?在javascript中,我可以执行d [“
value2”]来访问值(“随机”),但是我不确定如何使用c#和反射来做到这一点。我最接近的是:

d.GetType().GetProperty("value2") …但是我不知道如何从中获得实际价值。

一如既往,感谢您的帮助!


阅读 399

收藏
2020-05-19

共1个答案

一尘不染

获得PropertyInfo(from GetProperty)之后,您需要调用GetValue并传入要从中获取值的实例。在您的情况下:

d.GetType().GetProperty("value2").GetValue(d, null);
2020-05-19