首页 > 解决方案 > 属性名称为字符串时的对象字段值

问题描述

我有一个模型类的对象。

我必须返回名称作为字符串参数提供的对象的字段。

有没有比编写多个if条件更好的方法。

提前致谢。

标签: c#

解决方案


您可以使用反射按名称检索属性值。

首先,获取Type代表您的类的实例。例如,typeof如果类型在编译时已知(包括如果它是泛型类型参数),则使用运算符或GetType()方法。

然后,您可以使用GetProperty来检索具有给定名称的属性。(请注意,在更复杂的情况下,您可能需要该方法的多个重载,例如显式接口实现。)

GetProperty方法将返回一个PropertyInfo实例,您可以通过该实例检索值。

例如:

object propertyValue = myObject.GetType().GetProperty("SomeProperty").GetValue(myObject);

推荐阅读