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

WriteMappingInfo() private method

private WriteMappingInfo ( TypeMapping mapping, string typeVariable, Type type ) : void
mapping TypeMapping
typeVariable string
type System.Type
return void
        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)