Я создаю пользовательский атрибут на С#, и я хочу делать разные вещи в зависимости от того, применяется ли атрибут к методу в сравнении с имущество. Сначала я собирался сделать new StackTrace().GetFrame(1).GetMethod()
в своем конструкторе специальных атрибутов, чтобы узнать, какой метод называется конструктором атрибутов, но теперь я не уверен, что это даст мне. Что, если атрибут был применен к свойству? Будет ли GetMethod()
возвращать экземпляр MethodBase
для этого свойства? Есть ли другой способ получить член, к которому был применен атрибут в С#?
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property,
AllowMultiple = true)]
public class MyCustomAttribute : Attribute
Обновление: в порядке, возможно, я задал неправильный вопрос. Из класса пользовательских атрибутов, как мне получить член (или класс, содержащий член), к которому был применен мой пользовательский атрибут? Aaronaught предложил не подойти к стеку, чтобы найти член класса, к которому был применен мой атрибут, но как еще я получу эту информацию из конструктора моего атрибута?