Esempio n. 1
0
        /// <summary>
        /// Parse and configure serializer information.
        /// </summary>
        private void ParseSerializerConfig()
        {
            IDictionary serializerMap = new HashDictionary();

            var config = Config.FindElement("cluster-config/serializers");

            if (config != null)
            {
                for (var serializers = config.GetElements("serializer"); serializers.MoveNext();)
                {
                    var xmlSerializer = (IXmlElement)serializers.Current;
                    var name          = xmlSerializer.GetAttribute("id").GetString();

                    ConfigurableSerializerFactory factory = new ConfigurableSerializerFactory();
                    factory.Config = xmlSerializer;

                    serializerMap.Add(name, factory);
                }
            }

            // check that the well-known pof serializer is present
            String serializerName = "pof";

            if (!serializerMap.Contains(serializerName))
            {
                IXmlElement pofSerializer = new SimpleElement("serializer");
                IXmlElement xmlInstance   = pofSerializer.EnsureElement("instance");
                xmlInstance.EnsureElement("class-name").SetString("Tangosol.IO.Pof.ConfigurablePofContext, Coherence");

                ConfigurableSerializerFactory factory = new ConfigurableSerializerFactory();
                factory.Config = pofSerializer;

                serializerMap.Add(serializerName, factory);
            }

            SerializerMap = serializerMap;
        }