A fully tested example of how to properly implement this tricky pattern in C#.