Here you find the code that goes with the tutorial Implementing The Decorator Pattern.
If you want to follow the tutorial step for step, make sure you select the StartProject branch! If you just want to see how I implemented the decorator pattern, simply select the EndProject branch.
Curious about caching? Check out my tutorial How to use Caching in C#.