using Microsoft.AspNetCore.Mvc.ViewFeatures; using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; namespace IStation.Application { /// /// /// /// public class XmlHelper where T : class { /// /// 对象生成Xml文档 /// public string ObjectToXml(T obj) { using (TextWriter writer = new StringWriter()) { XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(writer, obj) ; return writer.ToString(); } } /// /// xml文档生成类 /// public T XmlToObject(string xmlStr) { try { using (StringReader reader = new StringReader(xmlStr)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); return serializer.Deserialize(reader) as T; } } catch (Exception ex) { var a = ex.Message; return null; } } /// /// 数据输出,序列化xml文本 /// /// public static string FileOutput(T obj) { var xml = string.Empty; try { using (MemoryStream ms = new MemoryStream()) { var setting = new XmlWriterSettings() { Encoding = new UTF8Encoding(false), Indent = true, }; using (XmlWriter writer = XmlWriter.Create(ms, setting)) { XmlSerializer xmlSearializer = new XmlSerializer(obj.GetType()); xmlSearializer.Serialize(writer, obj); xml= Encoding.UTF8.GetString(ms.ToArray()); } } } catch (Exception) { LogHelper.Error("报表Json文件格式化失败! "); } return xml; } /// /// 保存对象到xml文件中 /// /// /// /// public static void SaveObjectXmlFile(string fileName, T t) where T : class { var str = XmlHelper.FileOutput(t); UTF8Encoding utf8 = new UTF8Encoding(false); File.WriteAllText(fileName, str, utf8); } } }