繁体   English   中英

在c#中通过属性名动态从类的对象中获取值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM