Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ImportArrayLikeMapping()

ArrayMapping System.Xml.Serialization.XmlReflectionImporter.ImportArrayLikeMapping ( ArrayModel model,
string ns,
RecursionLimiter limiter )
inlineprivate

Definition at line 1082 of file XmlReflectionImporter.cs.

1083 {
1084 ArrayMapping arrayMapping = new ArrayMapping();
1085 arrayMapping.TypeDesc = model.TypeDesc;
1086 if (_savedArrayItemAttributes == null)
1087 {
1088 _savedArrayItemAttributes = new XmlArrayItemAttributes();
1089 }
1091 {
1093 }
1096 for (int i = 0; i < arrayMapping.Elements.Length; i++)
1097 {
1098 arrayMapping.Elements[i] = ReconcileLocalAccessor(arrayMapping.Elements[i], arrayMapping.Namespace);
1099 }
1100 IncludeTypes(model.Type);
1101 ArrayMapping arrayMapping2 = (ArrayMapping)_types[arrayMapping.TypeName, arrayMapping.Namespace];
1102 if (arrayMapping2 != null)
1103 {
1104 ArrayMapping next = arrayMapping2;
1105 while (arrayMapping2 != null)
1106 {
1107 if (arrayMapping2.TypeDesc == model.TypeDesc)
1108 {
1109 return arrayMapping2;
1110 }
1112 }
1113 arrayMapping.Next = next;
1114 if (!arrayMapping.IsAnonymousType)
1115 {
1116 _types[arrayMapping.TypeName, arrayMapping.Namespace] = arrayMapping;
1117 }
1118 else
1119 {
1121 }
1122 return arrayMapping;
1123 }
1125 if (!arrayMapping.IsAnonymousType)
1126 {
1127 _types.Add(arrayMapping.TypeName, arrayMapping.Namespace, arrayMapping);
1128 }
1129 else
1130 {
1132 }
1133 return arrayMapping;
1134 }
void Add(XmlQualifiedName qname, object value)
Definition NameTable.cs:57
void AddTypeMapping(TypeMapping typeMapping)
Definition TypeScope.cs:930
TypeDesc GetTypeDesc(string name, string ns)
Definition TypeScope.cs:224
void CreateArrayElementsFromAttributes(ArrayMapping arrayMapping, XmlArrayItemAttributes attributes, Type arrayElementType, string arrayElementNs, RecursionLimiter limiter)
ElementAccessor ReconcileLocalAccessor(ElementAccessor accessor, string ns)
static XmlArrayItemAttribute CreateArrayItemAttribute(TypeDesc typeDesc, int nestingLevel)
void SetArrayMappingType(ArrayMapping mapping, string defaultNs, Type type)
static int CountAtLevel(XmlArrayItemAttributes attributes, int level)
void IncludeTypes(ICustomAttributeProvider provider)

References System.Xml.Serialization.XmlReflectionImporter._anonymous, System.Xml.Serialization.XmlReflectionImporter._arrayNestingLevel, System.Xml.Serialization.XmlReflectionImporter._savedArrayItemAttributes, System.Xml.Serialization.XmlReflectionImporter._savedArrayNamespace, System.Xml.Serialization.XmlReflectionImporter._types, System.Xml.Serialization.XmlReflectionImporter._typeScope, System.Xml.Serialization.XmlArrayItemAttributes.Add(), System.Xml.Serialization.NameTable.Add(), System.Xml.Serialization.TypeScope.AddTypeMapping(), System.Xml.Serialization.XmlReflectionImporter.CountAtLevel(), System.Xml.Serialization.XmlReflectionImporter.CreateArrayElementsFromAttributes(), System.Xml.Serialization.XmlReflectionImporter.CreateArrayItemAttribute(), System.Xml.Dictionary, System.Xml.Serialization.TypeScope.GetTypeDesc(), System.Xml.Serialization.XmlReflectionImporter.IncludeTypes(), System.Xml.Serialization.XmlReflectionImporter.ReconcileLocalAccessor(), and System.Xml.Serialization.XmlReflectionImporter.SetArrayMappingType().

Referenced by System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(), and System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping().