private string WriteMemberInfo(Type type, string escapedName, string typeVariable, string memberName)
{
MemberInfo[] memberInfos = type.GetMember(memberName);
for (int i = 0; i < memberInfos.Length; i++)
{
if (memberInfos[i] is PropertyInfo)
{
string propVariable = GenerateVariableName("prop", memberName);
_writer.Write("static XSPropInfo " + propVariable + " = new XSPropInfo(" + typeVariable + ", ");
WriteQuotedCSharpString(memberName);
_writer.WriteLine(");");
_reflectionVariables.Add(memberName + ":" + escapedName, propVariable);
return propVariable;
}
else if (memberInfos[i] is FieldInfo)
{
string fieldVariable = GenerateVariableName("field", memberName);
_writer.Write("static XSFieldInfo " + fieldVariable + " = new XSFieldInfo(" + typeVariable + ", ");
WriteQuotedCSharpString(memberName);
_writer.WriteLine(");");
_reflectionVariables.Add(memberName + ":" + escapedName, fieldVariable);
return fieldVariable;
}
}
throw new InvalidOperationException(SR.Format(SR.XmlSerializerUnsupportedType, memberInfos[0].ToString()));
}