private void EmitEventRegistration(LocalBuilder localbuilder) { FieldInfo fieldInfo = Target.GetField(Member.Name, BindingFlags.NonPublic | BindingFlags.Static); var dynamicMethod = new DynamicMethod("EmitEventRegistration", TypeSystem.Void, Type.EmptyTypes, true); var dynamicMethodILGenerator = dynamicMethod.GetILGenerator(); var emitter = new FieldReferenceReflectionEmitter(Node, Target, fieldInfo, ILGenerator, InstructionsIndexer, Visitor, Locals); _assignorExpression.AcceptVisitor(Visitor, dynamicMethodILGenerator); dynamicMethodILGenerator.Emit(OpCodes.Stsfld, fieldInfo); dynamicMethodILGenerator.Emit(OpCodes.Ret); dynamicMethod.CreateDelegate(typeof(Action)).DynamicInvoke(); emitter.Emit(); }
private void EmitEventRegistration(LocalBuilder localbuilder) { FieldInfo fieldInfo = Target.GetField(Member.Name, BindingFlags.NonPublic | BindingFlags.Static); var dynamicMethod = new DynamicMethod("EmitEventRegistration", TypeSystem.Void, Type.EmptyTypes, true); var dynamicMethodILGenerator = dynamicMethod.GetILGenerator(); var emitter = new FieldReferenceReflectionEmitter(Node, Target, fieldInfo, ILGenerator, InstructionsIndexer, Visitor, Locals); _assignorExpression.AcceptVisitor(Visitor, dynamicMethodILGenerator); dynamicMethodILGenerator.Emit(OpCodes.Stsfld, fieldInfo); dynamicMethodILGenerator.Emit(OpCodes.Ret); dynamicMethod.CreateDelegate(typeof(Action)).DynamicInvoke(); emitter.Emit(); }