示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }