Чтение пользовательского атрибута в C#
Метод GetCustomAttributes возвращает атрибуты как массив object[]. После приведения к MarkerAttribute можно прочитать свойство Tag.
Второй аргумент false оставляет поиск на самом типе и не ищет такой же атрибут у базовых классов.
Прочитаем метку данных. Это строка из конструктора атрибута:
using System.Reflection;
using System.Linq;
var attr = typeof(Data).GetCustomAttributes(typeof(MarkerAttribute), false).Cast<MarkerAttribute>().First();
Console.WriteLine(attr.Tag);
[Marker("x")]
class Data { }
class MarkerAttribute : Attribute
{
public MarkerAttribute(string tag) => Tag = tag;
public string Tag { get; }
}
На классе Page стоит пользовательский атрибут со строкой "home". Прочитайте эту строку и выведите её в консоль.