Использование возможностей атрибутов .NET - PullRequest
2 голосов
/ 16 февраля 2009

Я хотел бы знать, могут ли атрибуты использоваться для "встраивания" функциональности в класс / метод / свойство.

Что-то вроде:

[TrackChanges]
public Foo
{
   get;
   set;
}

Кто-нибудь, как это будет реализовано, если это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2009

Взгляните на PostSharp , AOP рамки. Это посткомпилятор, который использует пользовательские атрибуты для добавления дополнительного поведения в существующий код. Большинство примеров - это обычно трассировка и безопасность.

0 голосов
/ 16 февраля 2009

Они, конечно, могут, но вам придется использовать отражение, чтобы сделать это. Даже то, что вы можете сделать это, не означает, что это легко или изящно.

Reflection предоставит вам доступ к каждому члену любого типа, который вы пожелаете. Вам нужно было бы извлечь этих членов и работать с API отражения .NET, чтобы манипулировать ими. Хотя это может сработать, это будет нелегко сохранить или прочитать.

...