System.Xml.Serialization.ReflectionAwareCodeGen.WriteMethodInfo C# (CSharp) Method

WriteMethodInfo() private method

private WriteMethodInfo ( string escapedName, string typeVariable, string memberName, bool isNonPublic ) : string
escapedName string
typeVariable string
memberName string
isNonPublic bool
return string
        private string WriteMethodInfo(string escapedName, string typeVariable, string memberName, bool isNonPublic, params string[] paramTypes)
        {
            string methodVariable = GenerateVariableName("method", memberName);
            _writer.Write("static " + typeof(MethodInfo).FullName + " " + methodVariable + " = " + typeVariable + ".GetMethod(");
            WriteQuotedCSharpString(memberName);
            _writer.Write(", ");

            string bindingFlags = typeof(BindingFlags).FullName;
            _writer.Write(bindingFlags);
            _writer.Write(".Public | ");
            _writer.Write(bindingFlags);
            _writer.Write(".Instance | ");
            _writer.Write(bindingFlags);
            _writer.Write(".Static");

            if (isNonPublic)
            {
                _writer.Write(" | ");
                _writer.Write(bindingFlags);
                _writer.Write(".NonPublic");
            }
            _writer.Write(", null, ");
            _writer.Write("new " + typeof(Type).FullName + "[] { ");
            for (int i = 0; i < paramTypes.Length; i++)
            {
                _writer.Write(paramTypes[i]);
                if (i < (paramTypes.Length - 1))
                    _writer.Write(", ");
            }
            _writer.WriteLine("}, null);");
            _reflectionVariables.Add(memberName + ":" + escapedName, methodVariable);
            return methodVariable;
        }