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; } } }
以上就是c# 实体类序列化与反序列化二 (datacontractserializer) 的内容,更多相关内容请关注php中文网(www.php.cn)!
0
0
相关文章
c# await foreach 是什么
C# 动态PGO优化方法 C# Dynamic PGO如何提升应用性能
C# WPF Community Toolkit使用方法 C# MVVM Toolkit如何简化MVVM开发
C# ML.NET入门方法 C#如何进行机器学习情感分析
C# 类型转换方法 C#如何进行显式和隐式转换
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 设计模式与软件架构
本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。
14
2026.01.30
热门下载
最新文章









