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

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

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

XFEstudio/XFEExtension.NetCore.ServerInteractive

优化生成器与核心服务结构,调整命名空间与引用

对 ClientRequestGenerator 进行代码简化,采用 C# 12 集合表达式,优化 using 判断。移除部分未用 using 指令。将 UserRole 枚举迁移至 Models 命名空间,并同步调整相关引用。StandardRequestServiceBase 去除 partial 修饰。移除数据表格管理器服务的动态路由注册实现,添加 TODO。优化 XFEServerCore 路由变量声明位置,提升代码结构清晰度。

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

代码差异

8 个文件 +10 -32
Modified XFEExtension.NetCore.ServerInteractive.SourceGenerator/ClientRequestGenerator.cs +4 -7
@@ -69,7 +69,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
69 69 .CreateSyntaxProvider(
70 70 predicate: static (s, _) => IsCandidateMethod(s),
71 71 transform: static (ctx, _) => GetMethodsForGeneration(ctx))
72 .Where(static m => !m.IsDefault && m.Length > 0)
72 .Where(static m => m is { IsDefault: false, Length: > 0 })
73 73 .SelectMany(static (m, _) => m);
74 74
75 75 // 按类分组
@@ -117,7 +117,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
117 117 var compilationUnit = methodDeclaration.SyntaxTree.GetRoot() as CompilationUnitSyntax;
118 118 var usingDirectives = compilationUnit?.Usings
119 119 .Select(u => u.ToString().Trim())
120 .ToArray() ?? System.Array.Empty<string>();
120 .ToArray() ?? [];
121 121
122 122 var results = new List<ClientRequestMethodCandidate>();
123 123
@@ -189,10 +189,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
189 189 usingDirectives));
190 190 }
191 191
192 if (results.Count == 0)
193 return default;
194
195 return results.ToImmutableArray();
192 return results.Count == 0 ? default : [..results];
196 193 }
197 194
198 195 private static void Execute(Compilation compilation, ImmutableArray<ClientRequestMethodCandidate> methods, SourceProductionContext context)
@@ -301,7 +298,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
301 298 }
302 299
303 300 // 确保基础using存在
304 if (!allUsings.Any(u => u.Trim() == "using System;"))
301 if (allUsings.All(u => u.Trim() != "using System;"))
305 302 sourceBuilder.AppendLine("using System;");
306 303 if (!allUsings.Any(u => u.Contains("System.Collections.Generic")))
307 304 sourceBuilder.AppendLine("using System.Collections.Generic;");
Modified XFEExtension.NetCore.ServerInteractive.SourceGenerator/Models/ClientRequestMethodCandidate.cs +0 -4
@@ -1,7 +1,3 @@
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 1 namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
6 2
7 3 /// <summary>
Modified XFEExtension.NetCore.ServerInteractive.SourceGenerator/Models/MethodCandidate.cs +1 -5
@@ -1,8 +1,4 @@
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
1 namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
6 2
7 3 /// <summary>
8 4 /// 方法候选信息,包含验证所需的所有数据
Modified XFEExtension.NetCore.ServerInteractive.TServer/Models/UserRole.cs +1 -1
@@ -1,4 +1,4 @@
1 namespace XFEExtension.NetCore.ServerInteractive.TServer;
1 namespace XFEExtension.NetCore.ServerInteractive.TServer.Models;
2 2
3 3 /// <summary>
4 4 /// 用户角色
Modified XFEExtension.NetCore.ServerInteractive.TServer/Profiles/UserProfile.cs +1 -0
@@ -1,5 +1,6 @@
1 1 using XFEExtension.NetCore.AutoConfig;
2 2 using XFEExtension.NetCore.ServerInteractive.Models.UserModels;
3 using XFEExtension.NetCore.ServerInteractive.TServer.Models;
3 4
4 5 namespace XFEExtension.NetCore.ServerInteractive.TServer.Profiles;
5 6
Modified XFEExtension.NetCore.ServerInteractive/Implements/Requester/StandardRequestServiceBase.cs +1 -1
@@ -6,7 +6,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.Requester;
6 6 /// <summary>
7 7 /// 标准请求服务基类
8 8 /// </summary>
9 public abstract partial class StandardRequestServiceBase : IStandardRequestService
9 public abstract class StandardRequestServiceBase : IStandardRequestService
10 10 {
11 11 /// <summary>
12 12 /// 本类型的请求路由路径列表(由增量生成器自动填充)
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEServerCoreBuilderExtensions.cs +1 -13
@@ -24,19 +24,7 @@ public static class XFEServerCoreBuilderExtensions
24 24 public XFEServerCoreBuilder AddDataTableManager(XFEDataTableManagerBuilder xFEDataTableManagerBuilder, Func<IEnumerable<User>> getUserFunction, Func<IEnumerable<EncryptedUserLoginModel>> getEncryptedUserLoginModelFunction)
25 25 {
26 26 xFEServerCoreBuilder.AddParameter("TableManager", xFEDataTableManagerBuilder.Build(getUserFunction, getEncryptedUserLoginModelFunction));
27
28 // Register the service for each table operation route
29 // XFEDataTableManagerService uses dynamic routing, so we use AddStandardServiceWithRoute
30 foreach (var execute in xFEDataTableManagerBuilder.ExecuteList)
31 {
32 var parts = execute.Split('_', 2);
33 if (parts.Length == 2)
34 {
35 var route = $"table/{parts[0]}/{parts[1]}";
36 xFEServerCoreBuilder.AddService<XFEDataTableManagerService>();
37 }
38 }
39
27 // TODO: 完善数据表格管理器的服务注册
40 28 return xFEServerCoreBuilder;
41 29 }
42 30
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCore.cs +1 -1
@@ -88,7 +88,6 @@ public abstract class XFEServerCore : ServerCoreServiceBase
88 88 }
89 89
90 90 // 从URL路径中提取路由信息
91 var route = string.Empty;
92 91 QueryableJsonNode? queryableJsonNode = null;
93 92 try
94 93 {
@@ -130,6 +129,7 @@ public abstract class XFEServerCore : ServerCoreServiceBase
130 129 var segments = url.Segments.Skip(1).Select(s => s.TrimEnd('/')).Where(s => !string.IsNullOrEmpty(s)).ToArray();
131 130
132 131 // 如果MainEntryPoint不为空,则需要匹配主入口点
132 string route;
133 133 if (!string.IsNullOrEmpty(MainEntryPoint))
134 134 {
135 135 if (segments.Length == 0 || segments[0] != MainEntryPoint)