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

BeginMethod() private method

private BeginMethod ( CodeGenerator ilg, string methodName, Type delegateType, bool allowPrivateMemberAccess ) : void
ilg 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(JsonFormatReaderGenerator).GetTypeInfo().Module, allowPrivateMemberAccess);
                ilg.BeginMethod(dynamicMethod, delegateType, methodName, paramTypes, allowPrivateMemberAccess);
#endif
            }