System.Xml.Serialization.XmlSerializer.FromMappings C# (CSharp) Méthode

FromMappings() public static méthode

public static FromMappings ( XmlMapping mappings, Type type ) : System.Xml.Serialization.XmlSerializer[]
mappings XmlMapping
type System.Type
Résultat System.Xml.Serialization.XmlSerializer[]
        public static XmlSerializer[] FromMappings(XmlMapping[] mappings, Type type)
        {
            if (mappings == null || mappings.Length == 0) return Array.Empty<XmlSerializer>();

#if NET_NATIVE
            var serializers = new XmlSerializer[mappings.Length];
            for(int i=0;i<mappings.Length;i++)
            {
                serializers[i] = new XmlSerializer();
                serializers[i].rootType = type;
                serializers[i]._mapping = mappings[i];
            }

            return serializers;
#else
            XmlSerializerImplementation contract = null;
            Assembly assembly = type == null ? null : TempAssembly.LoadGeneratedAssembly(type, null, out contract);
            TempAssembly tempAssembly = null;
            if (assembly == null)
            {
                if (XmlMapping.IsShallow(mappings))
                {
                    return Array.Empty<XmlSerializer>();
                }
                else
                {
                    if (type == null)
                    {
                        tempAssembly = new TempAssembly(mappings, new Type[] { type }, null, null);
                        XmlSerializer[] serializers = new XmlSerializer[mappings.Length];

                        contract = tempAssembly.Contract;

                        for (int i = 0; i < serializers.Length; i++)
                        {
                            serializers[i] = (XmlSerializer)contract.TypedSerializers[mappings[i].Key];
                            serializers[i].SetTempAssembly(tempAssembly, mappings[i]);
                        }

                        return serializers;
                    }
                    else
                    {
                        // Use XmlSerializer cache when the type is not null.
                        return GetSerializersFromCache(mappings, type);
                    }
                }
            }
            else
            {
                XmlSerializer[] serializers = new XmlSerializer[mappings.Length];
                for (int i = 0; i < serializers.Length; i++)
                    serializers[i] = (XmlSerializer)contract.TypedSerializers[mappings[i].Key];
                return serializers;
            }
#endif
        }

Same methods

XmlSerializer::FromMappings ( XmlMapping mappings ) : System.Xml.Serialization.XmlSerializer[]