System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.BeginMethod C# (CSharp) Method

BeginMethod() private method

private BeginMethod ( System.Reflection.Emit.CodeGenerator ilg, string methodName, Type delegateType, bool allowPrivateMemberAccess ) : void
ilg System.Reflection.Emit.CodeGenerator
methodName string
delegateType System.Type
allowPrivateMemberAccess bool
return void
            private void BeginMethod(CodeGenerator ilg, string methodName, Type delegateType, bool allowPrivateMemberAccess)
            {
#if USE_REFEMIT
                ilg.BeginMethod(methodName, delegateType, allowPrivateMemberAccess);
#else
                MethodInfo signature = delegateType.GetMethod("Invoke");
                ParameterInfo[] parameters = signature.GetParameters();
                Type[] paramTypes = new Type[parameters.Length];
                for (int i = 0; i < parameters.Length; i++)
                    paramTypes[i] = parameters[i].ParameterType;

                DynamicMethod dynamicMethod = new DynamicMethod(methodName, signature.ReturnType, paramTypes, typeof(JsonFormatWriterGenerator).GetTypeInfo().Module, allowPrivateMemberAccess);
                ilg.BeginMethod(dynamicMethod, delegateType, methodName, paramTypes, allowPrivateMemberAccess);
#endif
            }