15

I'm looking for interesting PostSharp aspects - anything that you found useful and wouldn't mind sharing.

Dmitri Nesteruk
  • 23,067
  • 22
  • 97
  • 166

3 Answers3

4

The coolest aspect of it for me is that it can help me implement the single responsibility principle:

"In object-oriented programming, the single responsibility principle states that every object should have a single responsibility, and that all its services should be narrowly aligned with that responsibility."

I hope to adopt this more fully with more experience in the future, but for now, I have just started with having it built in to my logging needs:

together with Log4PostSharp, I can do:

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

What this means is that, the responsibility of logging is ascribed elsewhere (coding wise), and injected from a separate source by PostSharp and Log4PostSharp magic.

Ric Tokyo
  • 6,577
  • 3
  • 30
  • 48
4

D. Patrick Caldwell has some cool ideas on his blog.

Validate Parameters Using Attributes and PostSharp http://dpatrickcaldwell.blogspot.com/2009/03/validate-parameters-using-attributes.html

  • Implmementing Coding Contracts using PostSharp.

Memoizer Attribute Using PostSharp http://dpatrickcaldwell.blogspot.com/2009/02/memoizer-attribute-using-postsharp.html

  • Basically, a light-weight field-value caching mechanism.
Mike Hall
  • 107
  • 1
  • 8
0

Daft question, but isn't that the purpose of the Contributions Directory?

There is an example of automatic property-change implementation - INotifyPropertyChanged.

Bern
  • 7,808
  • 5
  • 37
  • 47
Marc Gravell
  • 1,026,079
  • 266
  • 2,566
  • 2,900