设为首页 加入收藏

TOP

IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除(五)
2017-10-13 10:42:02 】 浏览:10506
Tags:IOSerialize xml json soap 序列化 二进制 XML 文件 检查 新增 复制 移动 删除
ram>
/// <param name="t"></param> /// <returns></returns> public static string ToXml<T>(T t) where T : new() { XmlSerializer xmlSerializer = new XmlSerializer(t.GetType()); Stream stream = new MemoryStream(); xmlSerializer.Serialize(stream, t); stream.Position = 0; StreamReader reader = new StreamReader( stream ); string text = reader.ReadToEnd(); return text; //string fileName = Path.Combine(CurrentXMLPath, @"Person.xml");//文件名称与路径 //using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite)) //{ // XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); // xmlFormat.Serialize(fStream, t); //} //string[] lines = File.ReadAllLines(fileName); //return string.Join("", lines); } /// <summary> /// 字符串序列化成XML /// </summary> /// <typeparam name="T"></typeparam> /// <param name="content"></param> /// <returns></returns> public static T ToObject<T>(string content) where T : new() { using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content))) { XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); return (T)xmlFormat.Deserialize(stream); } //string fileName = Path.Combine(CurrentXMLPath, @"Person.xml"); //using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite)) //{ // XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); // return (T)xmlFormat.Deserialize(fStream); //} } /// <summary> /// 文件反序列化成实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fileName"></param> /// <returns></returns> public static T FileToObject<T>(string fileName) where T : new() { fileName = Path.Combine(CurrentXMLPath, @"Student.xml"); using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite)) { XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); return (T)xmlFormat.Deserialize(fStream); } } /* linq to xml public static IEnumerable<Hero<T>> GetHeroEntity(string fileName) { XDocument xdoc = XDocument.Load(fileName); XElement root = xdoc.Root; foreach (XElement element in root.Elements()) { Hero<T> entity = new Hero<T>(); entity.Name = element.Element("Name").Value; foreach (XElement item in element.Element("StoryCollection").Elements()) { var story = ReflectionUtils<T>.ElementToEntity(item); entity.list.Add(story); } yield return entity; } } /// <summary> /// 将XElement转换为T类型的实体类 /// </summary> /// <param name="xe">XElement</param> /// <returns>T类型的实体类</returns> public static T ElementToEntity<T>(XElement xe) { T entity = Activator.CreateInstance<T>(); //T entity = new T(); Type type = typeof(T); PropertyInfo[] properties = type.GetProperties(); foreach (PropertyInfo p in properties) { string propertyName = p.Name; Type propertyType = p.PropertyType; object obj = xe.Element(propertyName).Value; object value = Convert.ChangeType(obj, propertyType); p.SetValue(entity, value); } return entity; } */ }

&nb

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇WPF制作带明细的环形图表 下一篇背水一战 Windows 10 (58) - 控件..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目