Доступ к свойствам атрибута .Net изнутри его цели (например, метод) - PullRequest
1 голос
/ 25 мая 2011

Можно ли получить доступ к свойствам атрибута из элемента, к которому он применяется (например, метод)? Например, с помощью приведенного ниже кода могу ли я получить доступ к свойству атрибута «requireConnection» из метода «Search»?

    [RequiresConnection]
    public SearchResult Search(SearchInfo searchInfo)
    {
    }

Ответы [ 3 ]

3 голосов
/ 25 мая 2011

Конечно

class TheClass {
  [RequiresConnection]
  public SearchResult Search(SearchInfo searchInfo) {
    MethodInfo methodInfo = typeof(TheClass).GetMethod("Search");
    RequiresConnection attrib = (RequiresConnection).methodInfo.GetCustomAttributes(
      typeof(RequiresConnection),
      false)[0];
0 голосов
/ 25 мая 2011

Конечно. Это будет что-то вроде

var attributes = StackTrace.GetFrame(0).GetMethod().GetCustomAttributes();
0 голосов
/ 25 мая 2011

Вы можете использовать Отражение .В этом примере не выполняется то, что вы хотите, но вы можете адаптировать его, вызывая GetCustomAttributes из вашего метода.

...