using System.Text.Json; using XFEExtension.NetCore.FormatExtension; namespace XFEExtension.NetCore.XApp.Core; /// /// App文件打包工具 /// public static class AppFilePackageHelper { /// /// 打包文件 /// /// app文件 /// public static XFEMultiDictionary Package(AppFileCollection appFiles) { var appFileDictionary = new XFEMultiDictionary(); foreach (var codeFile in appFiles.CodeFiles) appFileDictionary.Add("Code", JsonSerializer.Serialize(codeFile)); foreach (var resourceFile in appFiles.ResourceFiles) appFileDictionary.Add("Resource", JsonSerializer.Serialize(resourceFile)); foreach (var imageFile in appFiles.ImageFiles) appFileDictionary.Add("Image", JsonSerializer.Serialize(imageFile)); return appFileDictionary; } /// /// 解包文件 /// /// 文件字典 /// public static AppFileCollection UnPackage(XFEMultiDictionary appFileDictionary) { var appFiles = new AppFileCollection(); foreach (var appFile in appFileDictionary) { switch (appFile.Header) { case "Code": appFiles.Add(JsonSerializer.Deserialize(appFile.Content)!); break; case "Resource": appFiles.Add(JsonSerializer.Deserialize(appFile.Content)!); break; case "Image": appFiles.Add(JsonSerializer.Deserialize(appFile.Content)!); break; default: break; } } return appFiles; } }