public override void TraverseChildren(IMethodCall methodCall) { var mutableMethodCall = methodCall as MethodCall; var callsToOverloads = reflector.From(typeof(Replace)).GetAllOverloadsOf("CallsTo"); if (mutableMethodCall.MethodCallMatchesAnOverload(callsToOverloads)) { var lambda = mutableMethodCall.Arguments[0] as AnonymousDelegate; var parser = new LambdaParser(lambda, host, log, registry); var replacement = parser.GetReplacementFactory(); var registrar = replacement.GetRegistrar(); registrar.RegisterReplacement(); } base.TraverseChildren(methodCall); }