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

XFEExtension.NetCore.XApp

【DLL】XApp开发支持

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

XFEstudio/XFEExtension.NetCore.XApp

增加out参数,现在可以获取编译的程序集byte数组

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

代码差异

2 个文件 +8 -6
Modified XFEExtension.NetCore.XApp/XAppLoader.cs +6 -4
@@ -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 }
Modified XFEExtension.NetCore.XApp/XFEExtension.NetCore.XApp.csproj +2 -2
@@ -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