Прохладные аспекты PostSharp

Я ищу интересные аспекты PostSharp - все, что вы сочтете полезным, и не против совместного использования.

Ответы

Ответ 1

Самый крутой момент для меня в том, что он может помочь мне реализовать принцип единой ответственности:

"В объектно-ориентированном программировании принцип единой ответственности гласит, что каждый объект должен иметь одну ответственность и что все его службы должны быть узко согласованы с этой ответственностью".

Я надеюсь принять это более полно с большим опытом в будущем, но на данный момент я только начал с того, что он был встроен в мои потребности в регистрации:

вместе с Log4PostSharp, я могу сделать:

[Log(LogLevel.Info, "Counting characters.")]
int CountCharacters(string arg) {
   return arg.Length;
}

Это означает, что ответственность за регистрацию приписывается в другом месте (кодирование мудрым) и вводится из отдельного источника с помощью магии PostSharp и Log4PostSharp.

Ответ 2

Д. У Патрика Колдуэлла есть интересные идеи в его блоге.

Проверка параметров с использованием атрибутов и PostSharp http://dpatrickcaldwell.blogspot.com/2009/03/validate-parameters-using-attributes.html

  • Подписание контрактов кодирования с использованием PostSharp.

Атрибут Memoizer с использованием PostSharp http://dpatrickcaldwell.blogspot.com/2009/02/memoizer-attribute-using-postsharp.html

  • В принципе, легкий механизм кэширования значения поля.