我有500个属性的对象,我需要使用字符串动态调用对象。如何使用c#?
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; }
}
我需要调用对象的属性并使用string返回其值。
目标示例:
var x = MyObjects.GetPropertyValue("RGP_IDREG_10");
它有可能吗?
答案 0 :(得分:0)
您可以使用this question之类的内容获取属性列表,然后访问该属性。您将需要使用System.Reflection,但它应该可供您使用。
答案 1 :(得分:0)
我建议使用除此之外的任何东西,因为它需要反射,反射可能很慢,但如果你真的想这样做......
using System.Reflection;
...
var objects = new MyObjects();
var propertyInfo = typeof(MyObjects).GetRuntimeProperty("RGP_IDREG_1");
var value = (int)(propertyInfo.GetMethod.Invoke(objects, new object [] {}));
答案 2 :(得分:-1)
Xamarin表格中的解决方案
var profile = MyObjects;
var idProperty = GetProperty(profile.GetType().GetTypeInfo(), "RGP_IDREG_10");
var x = idProperty.GetValue(profile, null);
idProperty包含属性
的值