c# Serialization: 序列化内容至CData
来源:互联网 发布:mac翻墙回国软件 编辑:程序博客网 时间:2024/05/01 23:23
若存储内容中包含特殊字符,将内容存储至<![CDATA[...]>中 可以避免使用转义字符.
1.创建一个CData类(CData.cs)
{ private string m_Value; public CData() { } public CData(string p_Value) { m_Value = p_Value; } public string Value { get { return m_Value; } } public void ReadXml(XmlReader reader) { m_Value = reader.ReadElementContentAsString(); } public void WriteXml(XmlWriter writer) { writer.WriteCData(m_Value); } public XmlSchema GetSchema() { return (null); } public override string ToString() { return m_Value; } public static implicit operator string(CData element) { return (element == null) ? null : element.m_Value; } public static implicit operator CData(string text) { return new CData(text); } }2.使用CData //QueryInfo.cs
[Serializable] public class QueryInfo { [XmlElement] public string QueryName { get; set; } private CData queryContentSource; [XmlElement("QueryContentSource", typeof(CData))] public CData QueryContentSource { get { return queryContentSource; } set { queryContentSource = value; } } }3. 准备序列化和反序列化两个方法
public static void SerializeToXML(QueryInfo queryInfo, string saveTo) { XmlSerializer serializer = new XmlSerializer(typeof(QueryInfo)); using (TextWriter textWriter = new StreamWriter(saveTo)) { serializer.Serialize(textWriter, queryInfo); Process.Start(saveTo); } } public static QueryInfo DeserializeFromXMLReturnQueryInfo(string xmlPath) { XmlSerializer deserializer = new XmlSerializer(typeof(QueryInfo)); QueryInfo queryinfo = null; using (TextReader reader = new StreamReader(xmlPath)) { queryinfo = (QueryInfo)deserializer.Deserialize(reader); } return queryinfo; }调用示例:
QueryInfo qi = new QueryInfo(); qi.QueryName = "Class1.dsadw"; qi.QueryContentSource = @"selefdsajio<>&gjr fdjsiaofjeiojtrioejwtgioreggjdsfl;agjf;aj "; string path = System.Environment.CurrentDirectory + @"\" + DateTime.Now.ToString("yyyyMMdd") + ".xml"; //序列化 SerializeToXML(qi, path); //反序列化 QueryInfo qi2 = DeserializeFromXMLReturnQueryInfo(path);Reference:在XML中 特殊字符需要转义, 如:<<小于号>>大于号&&和''单引号""双引号
0 0
- c# Serialization: 序列化内容至CData
- C# 序列化中的 CDATA块
- Xml CDATA 序列化
- Serialization(序列化) 示例
- Serialization序列化
- 序列化 (serialization)
- 序列化 (serialization)
- 序列化 (serialization)
- Java Serialization 序列化
- Boost - 序列化 (Serialization)
- boost Serialization序列化
- Boost - 序列化 (Serialization)
- 序列化(serialization)
- 序列化(serialization)
- Boost - 序列化 (Serialization)
- Android Serialization序列化
- Boost - 序列化 (Serialization)
- Boost - 序列化 (Serialization)
- 计算机网络(一)
- mysql mysqldump只导出表结构或只导出数据的实现方法
- POJ 2492 A Bug's Life(扩展并查集)
- linux下Qt安装问题
- 提升linux下tcp服务器并发连接数限制
- c# Serialization: 序列化内容至CData
- HDU - 2955 Robberies
- KVO的使用
- leetcode:Number of Islands
- 通俗说说DSP、SSP、RTB、DMP是什么
- java面试总结
- poj3370Halloween treats抽屉原理
- 转自http://bbs.pfan.cn/
- Android boot up 过程