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;
}