using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.IO; using System.Xml; using System.Xml.Serialization; namespace Aitex.UI.RecipeEditor.Core { /// <summary> /// Endby condition define /// </summary> [Serializable] [DataContract] public enum EndByCondition { /// <summary> /// Reactor temperature greate than /// </summary> [EnumMember] PmTempGt, /// <summary> /// Reactor temperature less than /// </summary> [EnumMember] PmTempLt, /// <summary> /// Reactor A zone temperature greate than /// </summary> [EnumMember] AZoneTempGt, /// <summary> /// Reactor A zone temperature less than /// </summary> [EnumMember] AZoneTempLt, /// <summary> /// Reactor B zone temperature greate than /// </summary> [EnumMember] BZoneTempGt, /// <summary> /// Reactor B zone temperature less than /// </summary> [EnumMember] BZoneTempLt, /// <summary> /// Reactor C zone temperature greate than /// </summary> [EnumMember] CZoneTempGt, /// <summary> /// Reactor C zone temperature less than /// </summary> [EnumMember] CZoneTempLt, /// <summary> /// Reactor D zone temperature greate than /// </summary> [EnumMember] DZoneTempGt, /// <summary> /// Reactor D zone temperature less than /// </summary> [EnumMember] DZoneTempLt, /// <summary> /// Reactor pressure greate than /// </summary> [EnumMember] PmPresGt, /// <summary> /// Reactorpressure less than /// </summary> [EnumMember] PmPresLt, /// <summary> /// TC value great than /// </summary> [EnumMember] TcGt, /// <summary> /// TC value less than /// </summary> [EnumMember] TcLt, /// <summary> /// spindle speed great than /// </summary> [EnumMember] RpmGt, /// <summary> /// spindle speed less than /// </summary> [EnumMember] RpmLt, } public class CustomXmlSerializer { static public void Serialize<T>(T t, string fileName) { using (FileStream fileWriter = new FileStream(fileName, FileMode.Create)) using (XmlWriter writer = XmlTextWriter.Create(fileWriter)) { XmlSerializer serializer = new XmlSerializer(t.GetType()); serializer.Serialize(writer, t); writer.Flush(); } } static public string Serialize<T>(T t) { StringBuilder buffer = new StringBuilder(); using (StringWriter writer = new StringWriter(buffer)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); serializer.Serialize(writer, t); } return buffer.ToString(); } static public T Deserialize<T>(string xmlString) { if (string.IsNullOrWhiteSpace(xmlString)) throw new ArgumentNullException("xmlString"); using (StringReader reader = new StringReader(xmlString)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); return (T)serializer.Deserialize(reader); } } static public T Deserialize<T>(Stream streamReader) { if (streamReader == null) throw new ArgumentNullException("streamReader"); if (streamReader.Length <= 0) throw new EndOfStreamException("The stream is blank"); using (XmlReader reader = XmlTextReader.Create(streamReader)) { XmlSerializer deserializer = new XmlSerializer(typeof(T)); return (T)deserializer.Deserialize(reader); } } static public T Deserialize<T>(FileInfo fi) { if (fi == null) throw new ArgumentNullException("fi"); if (!fi.Exists) throw new FileNotFoundException(fi.FullName); using (FileStream fileReader = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read)) return Deserialize<T>(fileReader); } } }