返回提交历史
Modified
XFEExtension.NetCore.XApp.Core/AppFileCollection.cs
+5
-17
Added
XFEExtension.NetCore.XApp.Core/AppFilePackageHelper.cs
+54
-0
XFEstudio/XFEExtension.NetCore.XApp.Core
优化文件的解包和打包结构及方法
e5aedd1
代码差异
2 个文件
+59
-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>
@@ -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
}