/// <summary> /// 序列化对象成xml文本,并输出到指定路径文件 /// </summary> /// <param name="obj">待序列化对象</param> /// <param name="path">输出文件路径</param> /// <param name="encoding">编码方式(默认UTF8)</param> /// <returns></returns> public static string ToXml <T>(T obj, string path, Encoding encoding = null) { var xml = new XmlDocument { InnerXml = ToXml(obj) }; IOExt.WriteXml(path, xml); return(xml.InnerXml); }
private static void Write(string logInfo) { if (_logFolder.IsEmpty()) { return; } logInfo = $"\r\n【记录时间:{DateTime.Now}】\r\n{logInfo}"; string logPath = $"{_logFolder}{DateTime.Now.ToString("yyyy-MM-dd")}.txt"; IOExt.Write(logPath, logInfo, true); }
public static void InitPath(string path) { if (!IOExt.CheckFolderPath(path)) { throw new IOFolderPathException(path); } if (path[path.Length - 1] != '\\') { path += @"\"; } _logFolder = path; }
/// <summary> /// 反序列化xml文本至对象 /// </summary> /// <param name="xmlOrPath">待反序列化文本或文件的路径</param> /// <param name="isPath">是否从指定路径加载文件</param> /// <param name="encoding">编码方式(默认UTF8)</param> /// <returns></returns> public static T XmlTo <T>(string xmlOrPath, bool isPath = false, Encoding encoding = null) { EncodingExt.SetEncoding(ref encoding); // 如果是文件路径,则先加载文件 string xml = isPath ? IOExt.ReadXml(xmlOrPath).InnerXml : xmlOrPath; var serializer = new XmlSerializer(typeof(T)); using (var ms = new MemoryStream(encoding.GetBytes(xml))) { using (var sw = new StreamReader(ms, encoding)) { return((T)serializer.Deserialize(sw)); } } }