예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        public static void InitPath(string path)
        {
            if (!IOExt.CheckFolderPath(path))
            {
                throw new IOFolderPathException(path);
            }

            if (path[path.Length - 1] != '\\')
            {
                path += @"\";
            }

            _logFolder = path;
        }
예제 #4
0
        /// <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));
                }
            }
        }