static void Main(string[] args) { var innerRobot = new Robot(); var recorder = new MethodInterceptorRecorder <IRobot>(innerRobot); IRobot robot = (IRobot)recorder.GetTransparentProxy(); robot.Fire(10); robot.Jump(1); robot.Move(5, 6); Console.WriteLine("Playing recorded"); recorder.ReplayMethods(innerRobot); Console.ReadLine(); }