Interception in .NET - Part 2: Dynamic Interception