public static void Deserialize(string xmlPath) { string saveLocation = String.Format("{0}/{1}", Path.GetDirectoryName(xmlPath), Path.GetFileNameWithoutExtension(xmlPath)); YAXSerializer serializer = new YAXSerializer(typeof(PSL_File), YAXSerializationOptions.DontSerializeNullObjects); PSL_File pflFile = (PSL_File)serializer.DeserializeFromFile(xmlPath); byte[] bytes = pflFile.Write(); File.WriteAllBytes(saveLocation, bytes); }
public static PSL_File Serialize(string path, bool writeXml) { byte[] rawBytes = File.ReadAllBytes(path); List <byte> bytes = rawBytes.ToList(); PSL_File pslFile = Read(rawBytes, bytes); if (writeXml) { YAXSerializer serializer = new YAXSerializer(typeof(PSL_File)); serializer.SerializeToFile(pslFile, path + ".xml"); } return(pslFile); }
public static PSL_File Read(byte[] rawBytes, List <byte> bytes) { PSL_File pflFile = new PSL_File(); pflFile.PslEntries = new List <PSL_Entry>(); pflFile.I_06 = BitConverter.ToUInt16(rawBytes, 6); int count = BitConverter.ToInt32(rawBytes, 8); int offset = 12; for (int i = 0; i < count; i++) { pflFile.PslEntries.Add(PSL_Entry.Read(rawBytes, bytes, offset)); offset += 64; } return(pflFile); }