序列化IDictionary 类型
来源:互联网 发布:java 泛型调用 编辑:程序博客网 时间:2024/04/30 03:38
继承Dictionary和IXmlSerializable
生成可以被序列化的SerializableDictionary
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
[XmlRoot("dictionary")]
public class SerializableDictionary<TKey, TValue>
: Dictionary<TKey, TValue>, 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
}
原文:http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
- 序列化IDictionary 类型
- 不支持类型 Quartz.JobDataMap,因为它实现 IDictionary。
- IDictionary 序列化一定要实现父类实现了ISerializable接口的,子类也必须有序列化构造函数,否则反序列化时会出错。
- DateTime类型序列化
- Cereal library--序列化类型
- .NET 序列化 "该类型不能序列化"
- Json.NET匿名类型序列化
- 解决springmvc日期类型序列化
- Hadoop中的序列化:自定义value类型
- Hadoop的序列化类型介绍
- jackson对枚举类型的序列化
- java json序列化日期类型
- 实现IDictionary接口
- IDictionary与IDictionaryEnumerator
- wf中的IDictionary
- IDictionary 泛型接口
- IDictionary的操作
- C# 关键字集合,IDictionary
- “Microsoft Visual Studio远程调试监视器”绑定句柄无效问题的解决
- MP3音频录音机6.30版
- 在没有ui的程序中捕获所有的key事件
- 拷贝构造函数和赋值运算符 区别
- solaris下的weblogic技巧
- 序列化IDictionary 类型
- Solaris Xen Drop 66 - Release Notes
- 求助:page contentType="text/html;charset=gb2312"等价于什么?
- ASP.NET AJAX 简单介绍
- java abstract class 和 interface的概念分析与理解
- ASP.NET2.0中的登陆控件简介(1)
- ASP.NET Session详解
- ora-01013 用户请求取消当前的操作
- WebSphere Integration Developer 初步认识(转载)