static void Deserialize(string filePath) { FileStream fs = null; BinaryReader br = null; var msg = string.Empty; try { fs = new FileStream(filePath, FileMode.Open); br = new BinaryReader(fs); var analyze = new BinaryAnalyze(filePath, br, OnAnalyzeFinished); analyze.StartAnalyze(); msg = "反序列化完成."; } catch (Exception ex) { msg = ex.ToString(); } finally { Console.WriteLine(msg); fs?.Close(); br?.Close(); } }
static void OnAnalyzeFinished(BinaryAnalyze analyze) { Console.WriteLine("Analyze Finished"); foreach (var item in analyze.RecordObjects) { Console.WriteLine(item); } var fileInfo = new FileInfo(analyze.FilePath); var csFilePath = Path.Combine(fileInfo.DirectoryName, fileInfo.Name.Replace(fileInfo.Extension, string.Empty) + ".cs"); CSGenerator.Generate(analyze.RecordObjects, csFilePath); }