public Delegate CreateLambdaBody(ParameterExpression[] parameters, Type delegateType, MethodInfo mi)
{
_body.Clear();
ParameterExpression parameterListVariable = AddParametersToList(parameters);
ParameterExpression eventArgsVariable = FireEvent(parameterListVariable);
CallOriginal(mi, parameters, eventArgsVariable);
Delegate lambda = CompileLambda(parameters, parameterListVariable, eventArgsVariable);
return CastToOriginalDelegateType(lambda, delegateType);
}