Interception C# interceptors - various examples using Unity, CastleDynamicProxy, ILWeaving, ContextBoundObject