Вы близко. Атрибутами ParseClassName и ParseFieldName являются настраиваемые атрибуты. Если это так, вы можете получить к ним доступ, если вы получите имя свойства, заданного конструктором атрибута.
Потому что у меня нет (или не знаю, у меня есть) в DLL, которая определяет класс атрибута ParseFieldName
, я создал его следующим образом:
public class ParseFieldName: Attribute
{
public string Name { get; set; }
public ParseFieldName(string name)
{
this.Name = name;
}
}
Для справки, мой 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
.
Вы также можете получить доступ к обычным атрибутам, если вы замените Attributes
на GetCustomAttributes()
.