title: What's the best way to implement custom attributes in dotnet/.NET?
body: <p>I don't really understand attributes. I've read all kinds of books &amp; posts on them, but I just don't get it.</p>
  
  <p>Since I don't understand them, I also don't understand how to effectively use them.</p>
  
  <p>1) Can you give me a good definition of what an attribute is &amp; what it's used for?</p>
  
  <p>2) Can you give me a good code example in C# of how to make and consume a custom attribute?</p>