我有一个包含500个参数的对象,我无法更改它,因为它是一个共享项目。 我的目标是通过反思获得财产价值,但我无法做到。
这是我的代码:
public class MyObjects
{
public int RGP_Id { get; set; }
public DateTime RGP_DateTime { get; set; }
public int RGP_MCC_Numero_Serie_MS { get; set; }
public int RGP_IDREG_1 { get; set; }
public int RGP_IDREG_2 { get; set; }
public int RGP_IDREG_3 { get; set; }
public int RGP_IDREG_4 { get; set; }
public int RGP_IDREG_5 { get; set; }
public int RGP_IDREG_6 { get; set; }
public int RGP_IDREG_7 { get; set; }
public int RGP_IDREG_8 { get; set; }
public int RGP_IDREG_9 { get; set; }
public int RGP_IDREG_10 { get; set; }
.......
public int RGP_IDREG_500 { get; set; }
}
...
var profile = MyObjects;
var idProperty = GetProperty(profile.GetType().GetTypeInfo(), "RGP_IDREG_10");
...
idProperty 包含对象,我做了。
现在,如何使用idProperty获取值? 基本上我会得到:
var x = MyObjects.idProperty;
我怎样才能完成这项工作?
答案 0 :(得分:1)
假设idProperty
是PropertyInfo
对象,您可以执行以下操作:
var result = (int) idProperty.GetValue(profile,null);
您必须确保转换该值,因为它以object
的形式返回。
答案 1 :(得分:0)
您可以使用以下代码恢复价值:
var x = idProperty.GetValue(profile, null))
您可以在此处获取更多信息: https://msdn.microsoft.com/cs-cz/library/b05d59ty(v=vs.110).aspx