[英]Get the value from object of a class by property name dynamically in c#
我想编写一个方法,该方法应该从指定属性的object
返回值。
public class MyClass
{
public int a { get; set; }
public int b { get; set; }
public int c { get; set; }
public int d { get; set; }
}
public int GetValue(string field)
{
MyClass obj=new MyClass();
obj=FromDb(); //get value from db
dynamic temp=obj;
return temp?.field;
}
上面的代码只是为了向我展示我正在寻找的东西。
在这里,我想将property
名称(即 a/b/c/d 按照我上面的代码)作为方法的输入传递给GetValue
方法,它应该返回该属性的值。
此代码编译成功,但在运行时它将搜索属性名称field
而不是字段变量的值。
任何建议或解决方法将不胜感激。
您可以使用反射来获取值:
public int GetValue(string field)
{
MyClass obj = new MyClass();
obj = FromDb(); //get value from db
var property = obj.GetType().GetProperty(field);
return (int)property.GetValue(obj);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.