fCraft.Logger.AddEventHook C# (CSharp) Method

AddEventHook() static private method

static private AddEventHook ( TypeBuilder typeBuilder, Type methodParams, Type returnType, int eventIndex ) : void
typeBuilder System.Reflection.Emit.TypeBuilder
methodParams System.Type
returnType System.Type
eventIndex int
return void
        static void AddEventHook( TypeBuilder typeBuilder, Type[] methodParams, Type returnType, int eventIndex )
        {
            string methodName = "EventHook" + eventIndex;
            MethodBuilder methodBuilder = typeBuilder.DefineMethod( methodName,
                                                                    MethodAttributes.Public | MethodAttributes.Static,
                                                                    returnType,
                                                                    methodParams );

            ILGenerator generator = methodBuilder.GetILGenerator();
            generator.Emit( OpCodes.Ldc_I4, eventIndex );
            generator.Emit( OpCodes.Ldarg_1 );
            MethodInfo min = typeof( Logger ).GetMethod( "EventTraceNotifier" );
            generator.EmitCall( OpCodes.Call, min, null );
            generator.Emit( OpCodes.Ret );
        }