∑(Klick): 42215new:    u`re38.107.179.228     Bug gefunden?     Inhalt:([STRG+f] hilft :))
Startseite
Theme / Hintergrund setzen
Best viewed with a non-sucky browser [greez at http://www.metal-archives.com], in 1280 x 1024 resolution.

RC5-72 / Team #31659


Codebase, Hinweis:
Die Seiten "gewusst wie" geben Implemenmtierungsbeispiele für
verschiedene Aufgaben in unterschiedlichen Technoligien. Die 
Beispiele sind zumeist wenig dokumentiert. Es soll hier kurz und
knapp die (eine) Umsetzung des Problems nahegelegt werden. Nähere 
Informationen zu den verwendeten Codes finden sich im Netz :)

C#

1--> Dictionary serialisieren / Dictionary in XML schreiben / Dirctionary aus XML lesen


____ ____ ____ ____ ____ ____ ____ ____ ____

1--> Dictionary serialisieren / Dictionary in XML schreiben / Dirctionary aus XML lesen



Klasse SerializableDictionary:
_______________________________
using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Xml.Serialization;
namespace myNameSpace

{
    [XmlRoot("dictionary")]

    public class SerializableDictionary
        : Dictionary, IXmlSerializable
    {
        #region IXmlSerializable Members
        public System.Xml.Schema.XmlSchema GetSchema()
        {
            return null;
        }

        public void ReadXml(System.Xml.XmlReader reader)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
            XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));
            bool wasEmpty = reader.IsEmptyElement;
            reader.Read();
            if (wasEmpty)
                return;
            while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
            {
               reader.ReadStartElement("item");
             reader.ReadStartElement("key");
               TKey key = (TKey)keySerializer.Deserialize(reader);
                 reader.ReadEndElement();
                reader.ReadStartElement("value");
                TValue value = (TValue)valueSerializer.Deserialize(reader);
                reader.ReadEndElement();
                this.Add(key, value);
                reader.ReadEndElement();
            reader.MoveToContent();
            }
           reader.ReadEndElement();
        }

 

        public void WriteXml(System.Xml.XmlWriter writer)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
           XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));
            foreach (TKey key in this.Keys)
            {
                writer.WriteStartElement("item");
               writer.WriteStartElement("key");
                keySerializer.Serialize(writer, key);
                writer.WriteEndElement();
                writer.WriteStartElement("value");
                TValue value = this[key];
                valueSerializer.Serialize(writer, value);
                writer.WriteEndElement();
                writer.WriteEndElement();
            }
        }
        #endregion
    }
}


eine Methode zum Aufrufen:

        public static void writeXml_Test_2(List dieLogEntries)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(List));
            FileStream fs = new FileStream("horst2.xml", FileMode.Create);
            serializer.Serialize(fs, dieLogEntries);
         fs.Close();
        }



____________________________666Seitenanfang666_____________________________



666