Xml、Json序列化
Xml序列化:
public class XmlHelper { private static string XmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["XmlPath"]); public static T FileToObject<T>(string fileName) where T : new() { string fullName = Path.Combine(XmlPath, fileName); if (File.Exists(fullName)) { using (Stream fStream = new FileStream(fullName, FileMode.Open, FileAccess.ReadWrite)) { XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); return (T)xmlFormat.Deserialize(fStream); } } else { return default(T); } } public static void ObjectToFile<T>(T obj, string fileName) where T : new() { string fullName = Path.Combine(XmlPath, fileName); string fullPath = Path.GetDirectoryName(fullName); if (!Directory.Exists(fullPath)) { Directory.CreateDirectory(fullPath); } using (Stream fStream = new FileStream(fullName, FileMode.Create, FileAccess.ReadWrite)) { XmlSerializer xmlFormat = new XmlSerializer(typeof(T)); xmlFormat.Serialize(fStream, obj); } } public static string ObjectToString<T>(T obj) where T : new() { XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType()); Stream stream = new MemoryStream(); xmlSerializer.Serialize(stream, obj); stream.Position = 0; StreamReader reader = new StreamReader(stream); return reader.ReadToEnd(); } public static T StringToObject<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); } } }
Json序列化:
/// <summary> /// Json序列化器 /// </summary> public class JsonHelper { private static string JsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["JsonPath"]); public static T FileToObject<T>(string fileName) where T : new() { string fullName = Path.Combine(JsonPath, fileName); if (File.Exists(fullName)) { return StringToObject<T>(File.ReadAllText(fullName, Encoding.Default)); } else { return default(T); } } public static void ObjectToFile<T>(T obj, string fileName) where T : new() { string fullName = Path.Combine(JsonPath, fileName); string fullPath = Path.GetDirectoryName(fullName); if (!Directory.Exists(fullPath)) { Directory.CreateDirectory(fullPath); } using (FileStream fileStream = File.Create(fullName)) { string text = JsonConvert.SerializeObject(obj); byte[] bytes = Encoding.Default.GetBytes(text); fileStream.Write(bytes, 0, bytes.Length); } } public static string ObjectToString<T>(T obj) where T : new() { return JsonConvert.SerializeObject(obj); } public static T StringToObject<T>(string content) where T : new() { return JsonConvert.DeserializeObject<T>(content); } }