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

优化部分代码

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

代码差异

10 个文件 +14 -62
Modified XFEExtension.NetCore.ServerInteractive/Implements/CoreService/ServerCoreStandardServiceBase.cs +1 -1
@@ -10,7 +10,7 @@ public abstract partial class ServerCoreStandardServiceBase : XFEServerCoreServi
10 10 /// <summary>
11 11 /// 所有入口点路径列表(由增量生成器自动填充)
12 12 /// </summary>
13 public static List<string> EntryPointList { get; } = new();
13 public static List<string> EntryPointList { get; } = [];
14 14
15 15 /// <inheritdoc/>
16 16 public virtual Dictionary<string, Action> SyncEntryPoints { get; } = new();
Modified XFEExtension.NetCore.ServerInteractive/Implements/Requester/StandardRequestServiceBase.cs +4 -9
@@ -8,21 +8,16 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.Requester;
8 8 /// </summary>
9 9 public abstract class StandardRequestServiceBase : IStandardRequestService
10 10 {
11 /// <summary>
12 /// 此服务对应的路由列表(由派生类定义)
13 /// </summary>
14 public static List<string> RouteList { get; } = new();
15
16 11 /// <inheritdoc/>
17 12 public string Session { get => XFEClientRequester.Session; set => XFEClientRequester.Session = value; }
18 /// <inheritdoc/>
19 public string Execute { get; set; } = string.Empty;
13 /// <inheritdoc />
14 public string Route { get; set; } = string.Empty;
20 15 /// <inheritdoc/>
21 16 public string DeviceInfo { get; set; } = string.Empty;
22 17 /// <inheritdoc/>
23 public string UnescapedResponse { get; set; }
18 public string UnescapedResponse { get; set; } = string.Empty;
24 19 /// <inheritdoc/>
25 public string Response { get; set; }
20 public string Response { get; set; } = string.Empty;
26 21 /// <inheritdoc/>
27 22 public object[] Parameters { get; set; } = [];
28 23 /// <inheritdoc/>
Modified XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IStandardRequestService.cs +4 -4
@@ -5,10 +5,6 @@
5 5 /// </summary>
6 6 public interface IStandardRequestService : IRequestServiceBase
7 7 {
8 /// <summary>
9 /// 待请求的方法(如 check_connect)
10 /// </summary>
11 string Execute { get; internal set; }
12 8 /// <summary>
13 9 /// 设备信息
14 10 /// </summary>
@@ -18,6 +14,10 @@ public interface IStandardRequestService : IRequestServiceBase
18 14 /// </summary>
19 15 string Session { get; set; }
20 16 /// <summary>
17 /// 请求路由(不带斜杠开头),如"user/relogin"
18 /// </summary>
19 string Route { get; set; }
20 /// <summary>
21 21 /// 返回结果字符串(转义后)
22 22 /// </summary>
23 23 string UnescapedResponse { get; set; }
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEClientRequesterBuilderExtensions.cs +1 -1
@@ -75,7 +75,7 @@ public static class XFEClientRequesterBuilderExtensions
75 75 /// </summary>
76 76 /// <typeparam name="T">登录返回用户接口类型</typeparam>
77 77 /// <returns></returns>
78 public XFEClientRequesterBuilder AddLoginRequest<T>() where T : IUserFaceInfo => xFEClientRequesterBuilder.AddRequest<LoginRequestService<T>>().AddRequest<ReloginRequestService<T>>();
78 public XFEClientRequesterBuilder AddLoginRequest<T>() where T : IUserFaceInfo => xFEClientRequesterBuilder.AddRequest<LoginRequestService<T>>("user/login").AddRequest<ReloginRequestService<T>>("user/relogin");
79 79
80 80 /// <summary>
81 81 /// 使用XFE标准服务器服务请求
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ClearLogRequestService.cs +0 -1
@@ -13,7 +13,6 @@ public class ClearLogRequestService : StandardRequestServiceBase
13 13 /// <inheritdoc/>
14 14 public override object PostRequest() => new
15 15 {
16 execute = Execute,
17 16 session = Session,
18 17 deviceInfo = DeviceInfo
19 18 };
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/GetLogRequestService.cs +0 -1
@@ -13,7 +13,6 @@ public class GetLogRequestService : StandardRequestServiceBase
13 13 /// <inheritdoc/>
14 14 public override object PostRequest() => new
15 15 {
16 execute = Execute,
17 16 session = Session,
18 17 deviceInfo = DeviceInfo,
19 18 startDateTime = Parameters[0],
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/LoginRequestService.cs +0 -6
@@ -13,11 +13,6 @@ public class LoginRequestService<T> : StandardRequestServiceBase where T : IUser
13 13 {
14 14 private readonly JsonSerializerOptions _jsonSerializerOptions = new();
15 15
16 /// <summary>
17 /// 路由列表
18 /// </summary>
19 public new static List<string> RouteList { get; } = new() { "user/login" };
20
21 16 /// <summary>
22 17 /// 登录请求服务
23 18 /// </summary>
@@ -34,7 +29,6 @@ public class LoginRequestService<T> : StandardRequestServiceBase where T : IUser
34 29 /// <inheritdoc/>
35 30 public override object PostRequest() => new
36 31 {
37 execute = Execute,
38 32 deviceInfo = DeviceInfo,
39 33 account = Parameters[0],
40 34 password = Parameters[1]
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ReloginRequestService.cs +0 -6
@@ -12,11 +12,6 @@ public class ReloginRequestService<T> : StandardRequestServiceBase where T : IUs
12 12 {
13 13 private readonly JsonSerializerOptions _jsonSerializerOptions = new();
14 14
15 /// <summary>
16 /// 路由列表
17 /// </summary>
18 public new static List<string> RouteList { get; } = new() { "user/relogin" };
19
20 15 /// <summary>
21 16 /// 登录校验请求服务
22 17 /// </summary>
@@ -27,7 +22,6 @@ public class ReloginRequestService<T> : StandardRequestServiceBase where T : IUs
27 22 /// <inheritdoc/>
28 23 public override object PostRequest() => new
29 24 {
30 execute = Execute,
31 25 session = Session,
32 26 deviceInfo = DeviceInfo,
33 27 };
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs +2 -2
@@ -71,7 +71,7 @@ public abstract class XFEClientRequester : IRequesterBase
71 71 {
72 72 var xFEService = xFEServiceFactory();
73 73 xFEService.XFEClientRequester = this;
74 xFEService.Execute = serviceName;
74 xFEService.Route = serviceName;
75 75 xFEService.DeviceInfo = DeviceInfo;
76 76 xFEService.Parameters = parameters;
77 77 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, xFEService.PostRequest(), _jsonSerializerOptions);
@@ -111,7 +111,7 @@ public abstract class XFEClientRequester : IRequesterBase
111 111 foreach (var instance in from key in StandardMultiRequestServiceListDictionary.Keys where key.Contains(serviceName) select StandardMultiRequestServiceListDictionary[key] into factory select factory())
112 112 {
113 113 instance.XFEClientRequester = this;
114 instance.Execute = serviceName;
114 instance.Route = serviceName;
115 115 instance.DeviceInfo = DeviceInfo;
116 116 instance.Parameters = parameters;
117 117 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.PostRequest(), _jsonSerializerOptions);
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequesterBuilder.cs +2 -31
@@ -46,41 +46,12 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
46 46 }
47 47
48 48 /// <summary>
49 /// 添加标准请求器(从RouteList自动获取路由)
50 /// </summary>
51 /// <typeparam name="T">请求服务泛型</typeparam>
52 /// <returns></returns>
53 public XFEClientRequesterBuilder AddRequest<T>() where T : IStandardRequestService, new()
54 {
55 // 从T的静态RouteList属性获取所有路由
56 var routeListProperty = typeof(T).GetProperty("RouteList", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
57 if (routeListProperty is null)
58 throw new InvalidOperationException($"类型 {typeof(T).Name} 没有静态的 RouteList 属性");
59
60 var routeList = routeListProperty.GetValue(null) as List<string>;
61 if (routeList is null || routeList.Count == 0)
62 throw new InvalidOperationException($"类型 {typeof(T).Name} 的 RouteList 为空");
63
64 // 为每个路由注册服务工厂
65 foreach (var route in routeList)
66 {
67 _standardRequestServiceDictionary.Add(route, () =>
68 {
69 var inst = new T();
70 ApplyParameter(inst);
71 return inst;
72 });
73 }
74 return this;
75 }
76
77 /// <summary>
78 /// 添加标准请求器(手动指定路由,用于向后兼容或特殊场景)
49 /// 添加标准请求器
79 50 /// </summary>
80 51 /// <typeparam name="T">请求服务泛型</typeparam>
81 52 /// <param name="serviceName">请求服务名称</param>
82 53 /// <returns></returns>
83 public XFEClientRequesterBuilder AddRequestWithRoute<T>(string serviceName) where T : IStandardRequestService, new()
54 public XFEClientRequesterBuilder AddRequest<T>(string serviceName) where T : IStandardRequestService, new()
84 55 {
85 56 _standardRequestServiceDictionary.Add(serviceName, () =>
86 57 {