C# Class BananaHook.ReflectionDetourNotifier.InterceptorFuncBuilder

Show file Open project: sgraf812/BananaHook

Public Methods

Method Description
CreateLambdaBody ( System.Linq.Expressions.ParameterExpression parameters, Type delegateType, MethodInfo mi ) : Delegate

(parameters) => { List<object> parameters = new List<object> { parameters }; OnDetourCalled(new DetourCallbackEventArgs(parameters)); return (T)_detour.Invoke(parameters); }

InterceptorFuncBuilder ( ReflectionDetourNotifier notifier ) : System

Private Methods

Method Description
AddParametersToList ( IEnumerable parameterTypes ) : System.Linq.Expressions.ParameterExpression

List<object> parameters = new List<object> { ... };

CallOriginal ( MethodInfo mi, IEnumerable parameters, System.Linq.Expressions.ParameterExpression eventArgs ) : void

ret = _detour.Invoke(...);

CastToOriginalDelegateType ( Delegate ret, Type delegateType ) : Delegate

return (T)ret;

CompileLambda ( System.Linq.Expressions.ParameterExpression parameters ) : Delegate

(...) => { ... };

FireEvent ( Expression parameterListVariable ) : System.Linq.Expressions.ParameterExpression

OnDetourCalled(new DetourCallbackEventArgs(parameters));

HasNoReturnValue ( MethodInfo mi ) : bool

Method Details

CreateLambdaBody() public method

(parameters) => { List<object> parameters = new List<object> { parameters }; OnDetourCalled(new DetourCallbackEventArgs(parameters)); return (T)_detour.Invoke(parameters); }
public CreateLambdaBody ( System.Linq.Expressions.ParameterExpression parameters, Type delegateType, MethodInfo mi ) : Delegate
parameters System.Linq.Expressions.ParameterExpression
delegateType System.Type
mi System.Reflection.MethodInfo
return System.Delegate

InterceptorFuncBuilder() public method

public InterceptorFuncBuilder ( ReflectionDetourNotifier notifier ) : System
notifier ReflectionDetourNotifier
return System