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

◆ GetSerializersFromCache()

static XmlSerializer[] System.Xml.Serialization.XmlSerializer.GetSerializersFromCache ( XmlMapping[] mappings,
Type type )
inlinestaticprivate

Definition at line 708 of file XmlSerializer.cs.

709 {
713 {
714 if (!s_xmlSerializerTable.TryGetValue(type, out value))
715 {
718 }
719 }
720 lock (value)
721 {
723 for (int i = 0; i < mappings.Length; i++)
724 {
725 XmlSerializerMappingKey key = new XmlSerializerMappingKey(mappings[i]);
726 if (!value.TryGetValue(key, out array[i]))
727 {
728 dictionary.Add(key, i);
729 }
730 }
731 if (dictionary.Count > 0)
732 {
733 XmlMapping[] array2 = new XmlMapping[dictionary.Count];
734 int num = 0;
735 foreach (XmlSerializerMappingKey key2 in dictionary.Keys)
736 {
737 array2[num++] = key2.Mapping;
738 }
739 TempAssembly tempAssembly = new TempAssembly(array2, new Type[1] { type }, null, null);
740 XmlSerializerImplementation contract = tempAssembly.Contract;
741 foreach (XmlSerializerMappingKey key3 in dictionary.Keys)
742 {
743 num = dictionary[key3];
744 array[num] = (XmlSerializer)contract.TypedSerializers[key3.Mapping.Key];
745 array[num].SetTempAssembly(tempAssembly, key3.Mapping);
746 value[key3] = array[num];
747 }
748 }
749 }
750 return array;
751 }
static readonly Dictionary< Type, Dictionary< XmlSerializerMappingKey, XmlSerializer > > s_xmlSerializerTable

References System.Xml.Serialization.XmlSerializer.XmlSerializer(), System.array, System.dictionary, System.Xml.Dictionary, System.key, System.Collections.Generic.Dictionary< TKey, TValue >.Keys, System.Xml.Serialization.XmlSerializer.s_xmlSerializerTable, System.type, and System.value.

Referenced by System.Xml.Serialization.XmlSerializer.FromMappings().