Как получить атрибуты на указанном поле - PullRequest
0 голосов
/ 10 февраля 2010

У меня есть вопрос: Существует ли элегантный способ получения атрибутов на указанном поле. Ie.:

public class C1: Base
{
    [MyAttribute]
    public string Field1;
}
public class Base
{
    private void Do(ref string field)
    {
          if (field has attributes)
              DoSomething();
    }
} 

Как получить атрибуты поля в методе Do ()?

Заранее спасибо.

1 Ответ

0 голосов
/ 10 февраля 2010

Нет способа сделать это с подписью ref string field. Атрибуты применяются к объявлениям (полям, классам, событиям и т. Д.), А не к «экземплярам».

То, что вы можете сделать, это изменить ваш метод следующим образом:

private void Do(Type fieldContainingType, string fieldName, ref string field)

, а затем используйте отражение для проверки fieldContainingType, чтобы увидеть, какие атрибуты применяются к полю с именем fieldName. Однако такой подход чрезвычайно хрупок и, как правило, очень плох.

...