private void WriteMappingInfo(TypeMapping mapping, string typeVariable, Type type)
{
string typeFullName = mapping.TypeDesc.CSharpName;
if (mapping is StructMapping)
{
StructMapping structMapping = mapping as StructMapping;
for (int i = 0; i < structMapping.Members.Length; i++)
{
MemberMapping member = structMapping.Members[i];
string memberVariable = WriteMemberInfo(type, typeFullName, typeVariable, member.Name);
if (member.CheckShouldPersist)
{
string memberName = "ShouldSerialize" + member.Name;
memberVariable = WriteMethodInfo(typeFullName, typeVariable, memberName, false);
}
if (member.CheckSpecified != SpecifiedAccessor.None)
{
string memberName = member.Name + "Specified";
memberVariable = WriteMemberInfo(type, typeFullName, typeVariable, memberName);
}
if (member.ChoiceIdentifier != null)
{
string memberName = member.ChoiceIdentifier.MemberName;
memberVariable = WriteMemberInfo(type, typeFullName, typeVariable, memberName);
}
}
}
else if (mapping is EnumMapping)
{
FieldInfo[] enumFields = type.GetFields();
for (int i = 0; i < enumFields.Length; i++)
{
WriteMemberInfo(type, typeFullName, typeVariable, enumFields[i].Name);
}
}
}
private void WriteCollectionInfo(string typeVariable, TypeDesc typeDesc, Type type)