Create XML Serializer - CSharp System.Xml

CSharp examples for System.Xml:XML Serialization

Description

Create XML Serializer

Demo Code


using System.Xml.Serialization;
using System.Xml;
using System.Text;
using System.IO;//  w w w  .j  ava 2 s .  c  om
using System.Collections.Generic;
using System;

public class Main{
        /// <summary>
        /// Implementa una cache di serializzatori per ovviare alla lentezza della
        /// loro creazione. Se il serializzatore esiste gi? viene restituito,
        /// altrimenti ne viene creato uno nuovo.
        /// </summary>
        /// <param name="type">Il tipo associato al serializzatore</param>
        /// <param name="rootElementName">Il nome della root dell'XML che il
        /// serializzatore deve gestire</param>
        /// <returns>Il serializzatore in cache</returns>
        protected static XmlSerializer CreateSerializer(Type type, string rootElementName)
        {
            lock (_staticSyncObj)
            {
                // Determine univoque type/root ID
                string key = string.Format("{0}:{1}", type, rootElementName);

                // If the required serializer does not exist, then create it
                if (!_xmlSerializersCache.ContainsKey(key))
                {
                    XmlSerializer xs = new XmlSerializer(type, new XmlRootAttribute(rootElementName));
                    _xmlSerializersCache.Add(key, xs);
                }

                // At this point the serialize exists for sure, then send it back to the requester
                return (_xmlSerializersCache[key]);
            }
        }
}

Related Tutorials