Получить имя класса, которому назначен атрибутC#

Место общения программистов C#
Anonymous
Получить имя класса, которому назначен атрибут

Сообщение Anonymous »

Можно ли получить имя класса, которому присвоен атрибут?
На данный момент у меня есть что-то подобное, но шаблон тот же. Поэтому я хотел бы избежать литерала и получить его из имени класса.
[Foo("BAR")]
public class BarData
{
}

Измените, чтобы уточнить вопрос.
Пока атрибут выглядит так.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
internal class FooDataAttribute(string prop) : Attribute
{

public string Prop { get; } = prop.ToUpper();
}

Сейчас я вручную беру имя класса, удаляю суффикс Data и переводю остальное в верхний регистр. Было бы здорово, если бы существовал эффективный способ сделать это автоматически. Поэтому я бы получил что-то вроде
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
internal class FooDataAttribute() : Attribute
{

public string Prop {
get {
// do some magic here
}
}
}

[Foo] // Foo.Prop == "BAR"
public class BarData
{
}

[Foo] // Foo.Prop == "ABC"
public class AbcData
{
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... ssigned-to

Вернуться в «C#»