C# 从外部访问ParseFieldName属性

C# 从外部访问ParseFieldName属性,c#,parse-platform,C#,Parse Platform,我有一个parse子类,如: [ParseClassName("_User")] public class RFUser : ParseUser { [ParseFieldName("firstname")] public string Firstname { get { return GetProperty<string>(); } set { SetProperty(value); } } } [ParseClas

我有一个parse子类,如:

[ParseClassName("_User")]
public class RFUser : ParseUser
{
    [ParseFieldName("firstname")]
    public string Firstname
    {
        get { return GetProperty<string>(); }
        set { SetProperty(value); }
    }
}
[ParseClassName(“\u User”)]
公共类RFUser:ParseUser
{
[ParseFieldName(“firstname”)]
公共字符串名
{
获取{return GetProperty();}
集合{SetProperty(value);}
}
}
可以从程序的其他部分读取ParseFieldName(“firstname”)吗

比如:
typeof(RFUser).ParseFieldNames.Firstname?

您已经接近了。ParseClassName和ParseFieldName属性似乎是自定义属性。如果是这样,则可以在获取属性构造函数设置的属性名称时访问它们

因为我没有(或不知道我有)定义
ParseFieldName
属性类的DLL,所以我创建了它,如下所示:

public class ParseFieldName: Attribute
{
    public string Name { get; set; }

    public ParseFieldName(string name)
    {
        this.Name = name;
    }
}
作为参考,my
RFUser
类的定义如下:

[ParseClassName("_User")]
public class RFUser
{
    [ParseFieldName("fieldfirstname")]
    public string Firstname { get; set; }
}
在程序的其他地方,我有一个类,它带有
using System.Reflection
语句,并且有一个包含以下代码段的方法:

RFUser user = new RFUser();
var attribute = (ParseFieldName)user.GetType().GetProperty("Firstname").GetCustomAttribute(typeof(ParseFieldName));
Console.WriteLine(attribute.Name);   
控制台中显示的值为
fieldfirstname

如果将
GetCustomAttributes()
替换为
attributes
,也可以访问常规属性