XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.XApp.Core

【DLL】XApp开发核心支持

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.XApp.Core

优化文件的解包和打包结构及方法

e5aedd1
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

2 个文件 +59 -17
Modified XFEExtension.NetCore.XApp.Core/AppFileCollection.cs +5 -17
@@ -1,5 +1,6 @@
1 1 using System.Collections;
2 2 using System.Text.Json;
3 using XFEExtension.NetCore.FormatExtension;
3 4
4 5 namespace XFEExtension.NetCore.XApp.Core;
5 6
@@ -98,26 +99,13 @@ public class AppFileCollection : IList<XAppFile>
98 99 /// 打包
99 100 /// </summary>
100 101 /// <returns></returns>
101 public string Package() => JsonSerializer.Serialize(appFiles);
102 public XFEMultiDictionary Package() => AppFilePackageHelper.Package(this);
102 103 /// <summary>
103 /// 从Json创建对象
104 /// 从字典中解包
104 105 /// </summary>
105 /// <param name="json">json字符串</param>
106 /// <param name="appFileDictionary">字典</param>
106 107 /// <returns></returns>
107 public static AppFileCollection? FromJson(string json)
108 {
109 var appFileCollection = new AppFileCollection();
110 var appFileList = JsonSerializer.Deserialize<List<XAppFile>>(json);
111 if (appFileList is null)
112 {
113 return null;
114 }
115 else
116 {
117 appFileCollection.appFiles = appFileList;
118 return appFileCollection;
119 }
120 }
108 public static AppFileCollection? UnPackage(XFEMultiDictionary appFileDictionary) => AppFilePackageHelper.UnPackage(appFileDictionary);
121 109 /// <summary>
122 110 /// 移除指定文件
123 111 /// </summary>
Added XFEExtension.NetCore.XApp.Core/AppFilePackageHelper.cs +54 -0
@@ -0,0 +1,54 @@
1 using System.Text.Json;
2 using XFEExtension.NetCore.FormatExtension;
3
4 namespace XFEExtension.NetCore.XApp.Core;
5
6 /// <summary>
7 /// App文件打包工具
8 /// </summary>
9 public static class AppFilePackageHelper
10 {
11 /// <summary>
12 /// 打包文件
13 /// </summary>
14 /// <param name="appFiles">app文件</param>
15 /// <returns></returns>
16 public static XFEMultiDictionary Package(AppFileCollection appFiles)
17 {
18 var appFileDictionary = new XFEMultiDictionary();
19 foreach (var codeFile in appFiles.CodeFiles)
20 appFileDictionary.Add("Code", JsonSerializer.Serialize(codeFile));
21 foreach (var resourceFile in appFiles.ResourceFiles)
22 appFileDictionary.Add("Resource", JsonSerializer.Serialize(resourceFile));
23 foreach (var imageFile in appFiles.ImageFiles)
24 appFileDictionary.Add("Image", JsonSerializer.Serialize(imageFile));
25 return appFileDictionary;
26 }
27 /// <summary>
28 /// 解包文件
29 /// </summary>
30 /// <param name="appFileDictionary">文件字典</param>
31 /// <returns></returns>
32 public static AppFileCollection UnPackage(XFEMultiDictionary appFileDictionary)
33 {
34 var appFiles = new AppFileCollection();
35 foreach (var appFile in appFileDictionary)
36 {
37 switch (appFile.Header)
38 {
39 case "Code":
40 appFiles.Add(JsonSerializer.Deserialize<XAppCodeImpl>(appFile.Content)!);
41 break;
42 case "Resource":
43 appFiles.Add(JsonSerializer.Deserialize<XAppResourceImpl>(appFile.Content)!);
44 break;
45 case "Image":
46 appFiles.Add(JsonSerializer.Deserialize<XAppImageImpl>(appFile.Content)!);
47 break;
48 default:
49 break;
50 }
51 }
52 return appFiles;
53 }
54 }