博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 实体类序列化与反序列化二 (DataContractSerializer)
阅读量:6682 次
发布时间:2019-06-25

本文共 3236 字,大约阅读时间需要 10 分钟。

 
 
 
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Serialization;using System.IO;using System.Xml;namespace Common.Utility.XMLSerialization{    ///     /// DataContractSerializer    ///     /// 
public class DataContractSerializer
{ ///
/// 实体序列化成xml string /// ///
///
public static string ToXMLString(T meta) { DataContractSerializer dcs = new DataContractSerializer(typeof(T)); string xmlStr = string.Empty; using (MemoryStream ms = new MemoryStream()) { try { dcs.WriteObject(ms, meta); xmlStr = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); } catch { throw; } } return xmlStr; } ///
/// DataContract序列化 /// ///
///
已知类型的集合 ///
public static string ToXMLString(object value, IEnumerable
knownTypes = null) { try { DataContractSerializer dataContractSerializer = new DataContractSerializer(value.GetType(), knownTypes); using (MemoryStream ms = new MemoryStream()) { dataContractSerializer.WriteObject(ms, value); ms.Seek(0, SeekOrigin.Begin); using (StreamReader sr = new StreamReader(ms)) { return sr.ReadToEnd(); } } } catch { throw; } } ///
/// 实体反序列化 /// ///
///
public static T ReadFromXML(string xmlStr) { T meta; try { DataContractSerializer dcs = new DataContractSerializer(typeof(T)); using (TextReader reader = new StringReader(xmlStr)) { using (XmlReader xReader = XmlReader.Create(reader)) { meta = (T)dcs.ReadObject(xReader); } } } catch { throw; } return meta; } ///
/// 实体反序列化 /// ///
///
IEnumerable
///
public static T ReadFromXML(string xmlStr, IEnumerable
knownTypes = null) { T meta; try { DataContractSerializer dcs = new DataContractSerializer(typeof(T), knownTypes); using (TextReader reader = new StringReader(xmlStr)) { using (XmlReader xReader = XmlReader.Create(reader)) { meta = (T)dcs.ReadObject(xReader); } } } catch { throw; } return meta; } }}

拓展:

转载地址:http://edoao.baihongyu.com/

你可能感兴趣的文章
MySQL对分隔符的处理(二)
查看>>
centos 6.3 源码安装mysql
查看>>
SecureCRT 连接Ubuntu乱码解决
查看>>
Zabbix
查看>>
Linux运维学习历程-第十二天-bash脚本与程序包管理
查看>>
Restorator V2009 单文件版
查看>>
Zabbix man手册
查看>>
APUE读书笔记-09进程关系(02)
查看>>
来南京工作两个月了!
查看>>
EDM邮件营销的七个基本原则
查看>>
dropna(thresh=n) 的用法
查看>>
谨慎Asp.net中static变量的用法
查看>>
Harbor镜像仓库漏洞扫描功能
查看>>
git(学习之四)git协议服务器搭建
查看>>
我的友情链接
查看>>
实现hive proxy4-scratch目录权限问题解决
查看>>
杂谈(20)写给妹妹的信-完整版
查看>>
边界在消失——2014年七大技术趋势预测
查看>>
综合考虑各系统的平衡——中科曙光数据中心产品事业部总经理沈卫东谈云数据中心节能...
查看>>
MongoDB +node.js图片读取服务
查看>>