通过带有c# - Xamarin表单的字符串对象获取属性

时间:2017-02-28 13:36:49

标签: c# object reflection xamarin.forms equals

我有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"); 
它有可能吗?

3 个答案:

答案 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包含属性

的值