Welcome to DevAuthority.Com Sign in | Join | Help

XMLSerializable Hashtable

Well its high time that the hash table became XML serializable but i still havent figured out  why not.
But while I was thinking about this just thought i'd put it down myself.

I would like to know if there is a more standard implementation for this. But I just managed to this chewing gum class done for now.

using System;
using System.Runtime.Serialization;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;

namespace XMLSerializableHashTable
{
	[Serializable]
	public class SerializableHashtable:Hashtable,
				System.Xml.Serialization.IXmlSerializable
	{
		
		#region IXmlSerializable Members

		#region Node class
		/// <summary>
		/// This class would be for custom serialization
		/// </summary>
		[Serializable]
		public class Node
		{
			public Node()
			{}

			public Node(string k,object v)
			{
				key = k;
				val = v;
			}

			public string key;
			public object val;
		}

		#endregion Node class for XML Serialization

		/// <summary>
		/// Write the xml using an array list
		/// using the Node to store key value pairs
		/// </summary>
		/// <param name="writer"></param>
		public void WriteXml(System.Xml.XmlWriter writer)
		{
			XmlSerializer xs = new XmlSerializer(typeof(System.Collections.ArrayList),
												new System.Type[]{typeof(Node)});
			ArrayList list = new ArrayList();
			foreach(string key in this.Keys)
			{
				list.Add(new Node(key,this[key]));
			}
			xs.Serialize(writer,list);
		}

		public System.Xml.Schema.XmlSchema GetSchema()
		{
			// TODO:  Add SerializableHashtable.GetSchema implementation
			return null;
		}

		/// <summary>
		/// Deserialization using array list
		/// and the node(key,value) pairs
		/// </summary>
		/// <param name="reader"></param>
		public void ReadXml(System.Xml.XmlReader reader)
		{
			XmlSerializer xs = new XmlSerializer(typeof(System.Collections.ArrayList),
												new System.Type[]{typeof(Node)});

			//Move the reader into the ArrayList element.
			reader.Read();
			ArrayList list  = xs.Deserialize(reader) as ArrayList;
			Node node;

			if(list == null)
				return;

			//Reload the hashTable.
			for(int i=0;i<list.Count;i++)
			{
				node = (Node)list[i];
				this.Add(node.key,node.val);
			}
		}
		#endregion
	}
}
Published Wednesday, December 28, 2005 12:39 PM by decode

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Quintin

Sunday, July 15, 2007 12:47 AM by Cedric
http://a681f29645b52440435fb4de6e510684-t.msqgvg.org <a href="a681f29645b52440435fb4de6e510684">http://a681f29645b52440435fb4de6e510684-h.msqgvg.org">a681f29645b52440435fb4de6e510684</a> [url]http://a681f29645b52440435fb4de6e510684-b1.msqgvg.org[/url] [url=http://a681f29645b52440435fb4de6e510684-b2.msqgvg.org]a681f29645b52440435fb4de6e510684[/url] Broken Heart [U]http://a681f29645b52440435fb4de6e510684-b3.msqgvg.org[/u] 56833615449d2f4ffa6890aa846f09ff

# Ethen

Friday, August 17, 2007 10:44 AM by Latrell

# Jadon

Friday, August 17, 2007 8:12 PM by Roberto

# Kaiden

Monday, September 03, 2007 6:54 PM by Kasey

# Everett

Tuesday, September 04, 2007 8:46 PM by Rudy

# Jayce

Wednesday, September 05, 2007 10:45 AM by Jaheim

# Cesar

Thursday, September 06, 2007 12:07 AM by Jamie

# Derick

Thursday, September 06, 2007 5:31 PM by Rigoberto

# Salvador

Friday, September 07, 2007 1:10 PM by Darrell

# Patrick

Saturday, September 08, 2007 3:39 AM by Malcom

# Aidan

Saturday, September 08, 2007 5:28 PM by Israel

# Stone

Friday, September 14, 2007 6:30 PM by Leonardo

# Cary

Saturday, September 15, 2007 7:48 PM by Alessandro

# Infant

Monday, October 15, 2007 4:41 PM by Elias

# Pedro

Tuesday, October 16, 2007 10:29 AM by Andrey

# Kerry

Wednesday, October 17, 2007 4:31 AM by Augustus

# Wesley

Thursday, October 18, 2007 12:00 AM by Dave

# Quentin

Thursday, October 18, 2007 7:41 PM by Jordy

# re: XMLSerializable Hashtable

Thursday, October 18, 2007 8:56 PM by jiobcgrsed
gPxucP  <a href="http://zjpxlyxvpkka.com/">zjpxlyxvpkka</a>, [url=http://vvvdehzurnkm.com/]vvvdehzurnkm[/url], [link=http://fvmlpiglrxbu.com/]fvmlpiglrxbu[/link], http://crwcvsshtymm.com/

# re: XMLSerializable Hashtable

Friday, October 19, 2007 1:32 AM by Dionysios
Cool.

# re: XMLSerializable Hashtable

Friday, October 19, 2007 6:58 AM by Alexander
Sorry :(

# Orion

Friday, October 19, 2007 1:43 PM by Tobias

# re: XMLSerializable Hashtable

Friday, October 19, 2007 1:54 PM by Carolos
Interesting...

# re: XMLSerializable Hashtable

Saturday, October 20, 2007 2:30 AM by Georges
Cool.

# re: XMLSerializable Hashtable

Saturday, October 20, 2007 11:49 PM by Aleda
Nice...

# Jerad

Sunday, October 21, 2007 4:58 AM by Kristofer

# re: XMLSerializable Hashtable

Sunday, October 21, 2007 8:57 AM by Konstandinos
interesting

# re: XMLSerializable Hashtable

Sunday, October 21, 2007 4:45 PM by Charilaos
Nice

# Juancarlos

Monday, October 22, 2007 1:15 PM by Anderson

# Zayne

Tuesday, October 23, 2007 9:09 AM by Guy

# Darion

Thursday, October 25, 2007 12:58 AM by Donte

# Harry

Thursday, October 25, 2007 8:44 PM by Bronson

# Xzavier

Saturday, October 27, 2007 1:23 PM by Mark

# re: XMLSerializable Hashtable

Sunday, October 28, 2007 1:49 PM by online insurance
Really great site. Thanks a lot! 3pZkFc1dj4 http://www.exceedmedia.com/payday_loan/  <a href="http://www.exceedmedia.com/debt_consolidation_loan/">">http://www.exceedmedia.com/debt_consolidation_loan/"> debt consolidation loan </a>  [url=http://www.exceedmedia.com/debt_consolidation_loan/] consolidation loan [/url]  <a href=" http://www.exceedmedia.com/bad_credit_loan/ "> bad credit loan </a> [url=http://www.exceedmedia.com/bad_credit_loan/] bad credit loan [/url]

# re: XMLSerializable Hashtable

Thursday, November 01, 2007 8:42 AM by Manos
Cool.

# re: XMLSerializable Hashtable

Thursday, November 01, 2007 9:53 AM by Grigorios
Nice

# re: XMLSerializable Hashtable

Thursday, November 01, 2007 2:27 PM by Pavlos
Cool.

# re: XMLSerializable Hashtable

Thursday, November 01, 2007 2:39 PM by Efstratios
Nice!

# re: XMLSerializable Hashtable

Friday, November 02, 2007 12:05 AM by Nektarios
Interesting...

# re: XMLSerializable Hashtable

Friday, November 02, 2007 5:05 AM by Mamadshah
Interesting...

# re: XMLSerializable Hashtable

Friday, November 02, 2007 7:10 AM by Philippos
Nice

# re: XMLSerializable Hashtable

Friday, November 02, 2007 1:44 PM by Thanos
Sorry :(

# re: XMLSerializable Hashtable

Friday, November 02, 2007 5:14 PM by Yiannis
Interesting...

# re: XMLSerializable Hashtable

Friday, November 02, 2007 8:54 PM by Marko
interesting

# re: XMLSerializable Hashtable

Saturday, November 03, 2007 12:00 AM by Stylianos
Sorry :(

# re: XMLSerializable Hashtable

Saturday, November 03, 2007 1:02 AM by Alexander
Sorry :(

# re: XMLSerializable Hashtable

Saturday, November 03, 2007 6:37 AM by Nikodemos
Interesting...

# re: XMLSerializable Hashtable

Saturday, November 03, 2007 6:38 AM by Emmanouil
Cool!

# re: XMLSerializable Hashtable

Saturday, November 03, 2007 11:30 PM by Maximos
Cool.

# re: XMLSerializable Hashtable

Sunday, November 04, 2007 6:06 AM by Solon
Nice!

# re: XMLSerializable Hashtable

Sunday, November 04, 2007 11:54 AM by Drymiotes
Cool!

# re: XMLSerializable Hashtable

Sunday, November 04, 2007 4:52 PM by Efstratios
Nice

# re: XMLSerializable Hashtable

Sunday, November 04, 2007 8:46 PM by Stelios
Cool!

# re: XMLSerializable Hashtable

Monday, November 05, 2007 8:15 AM by Theodore
Sorry :(

# re: XMLSerializable Hashtable

Monday, November 05, 2007 9:08 AM by Zeus
interesting

# re: XMLSerializable Hashtable

Monday, November 05, 2007 10:42 AM by Makis
Cool.

# re: XMLSerializable Hashtable

Monday, November 05, 2007 9:27 PM by Savvas
Nice!

# re: XMLSerializable Hashtable

Monday, November 05, 2007 10:43 PM by Zacharias
Nice!

# re: XMLSerializable Hashtable

Tuesday, November 06, 2007 6:08 AM by Antonis
Sorry :(

# re: XMLSerializable Hashtable

Tuesday, November 06, 2007 7:17 AM by Ilias
Interesting...

# re: XMLSerializable Hashtable

Tuesday, November 06, 2007 9:21 AM by Vangelis
interesting

# re: XMLSerializable Hashtable

Wednesday, November 07, 2007 7:08 AM by Pantelis
Cool!

# re: XMLSerializable Hashtable

Wednesday, November 07, 2007 5:21 PM by Yioryios
Cool...

# re: XMLSerializable Hashtable

Wednesday, November 07, 2007 6:00 PM by Boreas
Nice...

# re: XMLSerializable Hashtable

Wednesday, November 07, 2007 11:28 PM by Thanasis
interesting

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 12:35 AM by Aiolos
Cool!

# cheap VIAGRA in Online Pharmacy. Free Delivery

Thursday, November 08, 2007 5:18 AM by joanasevilyboaz

Broken Heart [U]Beer [B] Buy VIAGRA and Enjoy! VIAGRA (generic) 90 pills x 100mg 139.95$[/b][/u]  
[url=http://www.drugsmarket.medsjoy.biz]online purchase VIAGRA[/url] - online purchase VIAGRA

Broken Heart [U]Beer [B] Escompte de VIAGRA bon marchй [/b][/u]
[url=http://www.acheterviagra.medsjoy.biz/Viagra.htm]achat VIAGRA[/url] - cialis comparent levitra VIAGRA
Broken Heart [U]Beer [B] Kaufen Sie preiswerten VIAGRA online [/b][/u]
[url=http://www.viagrakaufen.enjoymeds.biz/Viagra.htm]Information VIAGRA[/url] - cialis VIAGRA dagegen

Broken Heart [U]Beer [B] Compra Levitra Cialis VIAGRA Cheapest [/b][/u]
[url=http://www.comprarviagra.medsjoy.biz/Viagra.htm]compra VIAGRA[/url] - VIAGRA generico

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 6:09 AM by Demetri
Cool...

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 6:31 AM by Stratis
Cool...

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 1:17 PM by Kosmas
Nice

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 1:38 PM by Georghios
Cool.

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 3:28 PM by Kristion
Nice!

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 3:37 PM by Thrasyvoulos
Cool.

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 4:40 PM by Yanni
Sorry :(

# re: XMLSerializable Hashtable

Thursday, November 08, 2007 5:41 PM by Vassilios
Nice

# re: XMLSerializable Hashtable

Friday, November 09, 2007 2:24 AM by Gregorios
interesting

# re: XMLSerializable Hashtable

Friday, November 09, 2007 2:56 AM by Athanassios
Nice!

# re: XMLSerializable Hashtable

Friday, November 09, 2007 4:44 AM by Iakovos
Cool...

# re: XMLSerializable Hashtable

Friday, November 09, 2007 10:01 AM by Alekos
Nice...

# re: XMLSerializable Hashtable

Friday, November 09, 2007 10:07 AM by Aiakos
interesting

# re: XMLSerializable Hashtable

Friday, November 09, 2007 11:20 AM by Nicolaon
Interesting...

# re: XMLSerializable Hashtable

Friday, November 09, 2007 1:21 PM by Halu
Interesting...

# re: XMLSerializable Hashtable

Friday, November 09, 2007 2:12 PM by Stratis
Nice...

# re: XMLSerializable Hashtable

Friday, November 09, 2007 3:19 PM by Fanos
Cool.

# re: XMLSerializable Hashtable

Friday, November 09, 2007 3:58 PM by Dimitri
Cool...

What do you think?

(required) 
required 
(required)