返回提交历史
Modified
XFEExtension.NetCore.XApp/XAppLoader.cs
+6
-4
Modified
XFEExtension.NetCore.XApp/XFEExtension.NetCore.XApp.csproj
+2
-2
XFEstudio/XFEExtension.NetCore.XApp
增加out参数,现在可以获取编译的程序集byte数组
dcbe7cd
代码差异
2 个文件
+8
-6
@@ -17,7 +17,7 @@ public static class XAppLoader
17
17
/// </summary>
18
18
/// <param name="xApp">XApp对象</param>
19
19
/// <returns>编译结果信息</returns>
20
public static async Task<CompilateResult> GetMainPage(Core.XApp xApp) => await GetMainPage(LoadAssemblyFromXApp(xApp, out var diagnostic), diagnostic);
20
public static async Task<CompilateResult> GetMainPage(Core.XApp xApp) => await GetMainPage(LoadAssemblyFromXApp(xApp, out _, out var diagnostic), diagnostic);
21
21
/// <summary>
22
22
/// 获取主页面
23
23
/// </summary>
@@ -45,16 +45,18 @@ public static class XAppLoader
45
45
/// 从XApp对象中加载程序集
46
46
/// </summary>
47
47
/// <param name="xApp">XApp对象</param>
48
/// <param name="assemblyBytes">程序集字节</param>
48
49
/// <param name="diagnostic">诊断信息</param>
49
50
/// <returns></returns>
50
public static Assembly? LoadAssemblyFromXApp(Core.XApp xApp, out ImmutableArray<Diagnostic> diagnostic) => CompilateCode(out diagnostic, xApp.AppFiles.CodeFiles);
51
public static Assembly? LoadAssemblyFromXApp(Core.XApp xApp, out byte[]? assemblyBytes, out ImmutableArray<Diagnostic> diagnostic) => CompilateCode(out assemblyBytes, out diagnostic, xApp.AppFiles.CodeFiles);
51
52
/// <summary>
52
53
/// 编译代码
53
54
/// </summary>
55
/// <param name="assemblyBytes">程序集字节</param>
54
56
/// <param name="diagnostics">诊断信息</param>
55
57
/// <param name="xAppCodes">XApp的代码文件</param>
56
58
/// <returns></returns>
57
public static Assembly? CompilateCode(out ImmutableArray<Diagnostic> diagnostics, params XAppCode[] xAppCodes)
59
public static Assembly? CompilateCode(out byte[]? assemblyBytes, out ImmutableArray<Diagnostic> diagnostics, params XAppCode[] xAppCodes)
58
60
{
59
61
var syntaxTrees = new List<SyntaxTree>();
60
62
foreach (var xAppCode in xAppCodes)
@@ -107,7 +109,6 @@ public static class XAppLoader
107
109
MetadataReference.CreateFromFile(Assembly.Load("Microsoft.Maui.Graphics").Location)
108
110
)
109
111
.AddSyntaxTrees(syntaxTrees);
110
byte[] assemblyBytes;
111
112
using var stream = new MemoryStream();
112
113
var result = compilation.Emit(stream);
113
114
foreach (var diagnostic in result.Diagnostics)
@@ -130,6 +131,7 @@ public static class XAppLoader
130
131
}
131
132
else
132
133
{
134
assemblyBytes = null;
133
135
return null;
134
136
}
135
137
}
@@ -15,9 +15,9 @@
15
15
<PackageIcon>logoIcon.png</PackageIcon>
16
16
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.XApp</RepositoryUrl>
17
17
<PackageTags>XApp;XFE</PackageTags>
18
<PackageReleaseNotes>支持预先编译的程序集</PackageReleaseNotes>
18
<PackageReleaseNotes>增加out参数,现在可以获取编译的程序集byte数组</PackageReleaseNotes>
19
19
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
20
<Version>1.1.1</Version>
20
<Version>1.1.2</Version>
21
21
<GenerateDocumentationFile>True</GenerateDocumentationFile>
22
22
</PropertyGroup>
23
23