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

◆ ReconcileAccessor()

Accessor System.Xml.Serialization.XmlReflectionImporter.ReconcileAccessor ( Accessor accessor,
NameTable accessors )
inlineprivate

Definition at line 294 of file XmlReflectionImporter.cs.

295 {
296 if (accessor.Any && accessor.Name.Length == 0)
297 {
298 return accessor;
299 }
300 Accessor accessor2 = (Accessor)accessors[accessor.Name, accessor.Namespace];
301 if (accessor2 == null)
302 {
304 accessors.Add(accessor.Name, accessor.Namespace, accessor);
305 return accessor;
306 }
307 if (accessor2.Mapping == accessor.Mapping)
308 {
309 return accessor2;
310 }
311 if (!(accessor.Mapping is MembersMapping) && !(accessor2.Mapping is MembersMapping) && (accessor.Mapping.TypeDesc == accessor2.Mapping.TypeDesc || (accessor2.Mapping is NullableMapping && accessor.Mapping.TypeDesc == ((NullableMapping)accessor2.Mapping).BaseMapping.TypeDesc) || (accessor.Mapping is NullableMapping && ((NullableMapping)accessor.Mapping).BaseMapping.TypeDesc == accessor2.Mapping.TypeDesc)))
312 {
313 string text = Convert.ToString(accessor.Default, CultureInfo.InvariantCulture);
314 string text2 = Convert.ToString(accessor2.Default, CultureInfo.InvariantCulture);
315 if (text == text2)
316 {
317 return accessor2;
318 }
320 }
321 if (accessor.Mapping is MembersMapping || accessor2.Mapping is MembersMapping)
322 {
324 }
325 if (accessor.Mapping is ArrayMapping)
326 {
327 if (!(accessor2.Mapping is ArrayMapping))
328 {
330 }
331 ArrayMapping arrayMapping = (ArrayMapping)accessor.Mapping;
332 ArrayMapping arrayMapping2 = (arrayMapping.IsAnonymousType ? null : ((ArrayMapping)_types[accessor2.Mapping.TypeName, accessor2.Mapping.Namespace]));
333 ArrayMapping next = arrayMapping2;
334 while (arrayMapping2 != null)
335 {
336 if (arrayMapping2 == accessor.Mapping)
337 {
338 return accessor2;
339 }
341 }
342 arrayMapping.Next = next;
343 if (!arrayMapping.IsAnonymousType)
344 {
345 _types[accessor2.Mapping.TypeName, accessor2.Mapping.Namespace] = arrayMapping;
346 }
347 return accessor2;
348 }
349 if (accessor is AttributeAccessor)
350 {
352 }
354 }
void Add(TKey key, TValue value)
static CultureInfo InvariantCulture
static string XmlMethodTypeNameConflict
Definition SR.cs:1564
static string XmlCannotReconcileAccessorDefault
Definition SR.cs:1570
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlCannotReconcileAttributeAccessor
Definition SR.cs:1568
static string XmlCannotReconcileAccessor
Definition SR.cs:1566
Definition SR.cs:7

References System.Xml.Serialization.XmlReflectionImporter._types, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.Xml.Serialization.NullableMapping.BaseMapping, System.Xml.Dictionary, System.SR.Format(), System.Xml.Serialization.XmlReflectionImporter.GetMappingName(), System.Globalization.CultureInfo.InvariantCulture, System.text, System.Convert.ToString(), System.Xml.Serialization.TypeMapping.TypeDesc, System.SR.XmlCannotReconcileAccessor, System.SR.XmlCannotReconcileAccessorDefault, System.SR.XmlCannotReconcileAttributeAccessor, and System.SR.XmlMethodTypeNameConflict.

Referenced by System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(), System.Xml.Serialization.XmlReflectionImporter.ImportElement(), System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(), and System.Xml.Serialization.XmlReflectionImporter.ReconcileLocalAccessor().