c# - 属性名称为字符串时的对象字段值
问题描述
我有一个模型类的对象。
我必须返回名称作为字符串参数提供的对象的字段。
有没有比编写多个if
条件更好的方法。
提前致谢。
解决方案
您可以使用反射按名称检索属性值。
首先,获取Type
代表您的类的实例。例如,typeof
如果类型在编译时已知(包括如果它是泛型类型参数),则使用运算符或GetType()
方法。
然后,您可以使用GetProperty
来检索具有给定名称的属性。(请注意,在更复杂的情况下,您可能需要该方法的多个重载,例如显式接口实现。)
该GetProperty
方法将返回一个PropertyInfo
实例,您可以通过该实例检索值。
例如:
object propertyValue = myObject.GetType().GetProperty("SomeProperty").GetValue(myObject);
推荐阅读
- css - 无法让媒体查询发挥作用
- c# - 我需要从 ICollection 填充 lambda 查询
- angular - 在 NodeJs 上部署 Angular 7 应用程序时出现 OpenShift CrashLoopBackOff 错误
- python - Ansible:从字典中删除一个项目
- webpack - 如何在带有 webpack 的文件加载器中使用排除选项?
- bash - 为什么要在复制/粘贴到终端之前运行 cat|bash ?
- python - Splunk 使用 Python SDK 将 GCP 中的 csv 加载到 KVStore 查找中
- react-native - React Native datetimepicker 问题。在这段代码中为什么 Platform.OS==='ios'?true:false?
- google-apps-script - 用于复制和粘贴新的谷歌表单回复的脚本
- python - GNU Radio Companion——在流程图关闭之前记录一条消息