I had used it in one of the ORM frameworks which I developed based on the ActiveRecord pattern. This is the same kind of implementation that is available in LINQ, Castle project etc.
The framework was called "SkyFramework", but it was not opensource.
for e.g. Just a rough example...
You will find similar examples in other opensource projects as well.
[Sky.Table ("user")]
public class User
{
[Sky.Column ("username")]
public string UserName;
[Sky.Column ("pwd")]
public string Password;
}
NOTE: The attribute "Table", "Columns" were the custom attributes at that time.
The ActiveRecord engine parses the object for these attributes and generates the respective functions for CRUD... etc...
Similarly, I had developed some custom attributes for identifying portions of code that needs to be benchmarked...for e.g..
[Sky.BenchMark()]
public void LongRunningMethod(..)
{
}
The methods marked with the above attributes are automatically bench marked and a log is generated. These were some earlier implementations.
There's an Apress book available on the topic..
Applied .NET Attribues which may be of help to you.