Skip to content

Commit 023fef8

Browse files
🔧 Fix(Core): 消除编译警告,修复可空性类型不匹配与未使用事件,移除多余 NuGet 包引用
1 parent 606a42b commit 023fef8

9 files changed

Lines changed: 39 additions & 15 deletions

File tree

KitX Clients/KitX Core/KitX.Core/Device/DevicesDiscoveryServer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ public void ConfigurePort(int port)
8585
/// <summary>
8686
/// Event raised when a device goes offline
8787
/// </summary>
88+
#pragma warning disable CS0067
8889
public event EventHandler<DeviceOfflineEventArgs>? DeviceOffline;
90+
#pragma warning restore CS0067
8991

9092
/// <summary>
9193
/// Private constructor

KitX Clients/KitX Core/KitX.Core/Device/DevicesServer.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ public class DevicesServer : IDeviceServer
5656
/// <summary>
5757
/// Event raised when port changes
5858
/// </summary>
59+
#pragma warning disable CS0067
5960
public event EventHandler<int>? PortChanged;
61+
#pragma warning restore CS0067
6062

6163
/// <summary>
6264
/// Gets or sets the port
@@ -381,6 +383,15 @@ private async System.Threading.Tasks.Task HandleExchangeKeyAsync(HttpContext con
381383

382384
// For now, auto-accept the key exchange (in real implementation, this would show a UI)
383385
// TODO: Integrate with UI for verification code input
386+
if (request.DeviceKey is null)
387+
{
388+
_isExchangingDeviceKey = false;
389+
_exchangeDeviceKeyCode = null;
390+
context.Response.StatusCode = 400;
391+
await context.Response.WriteAsync("Device key is null");
392+
return;
393+
}
394+
384395
var deviceKeyDecrypted = securityService.AesDecrypt(request.DeviceKey, _exchangeDeviceKeyCode);
385396
var deviceKeyInstance = JsonSerializer.Deserialize<DeviceKey>(deviceKeyDecrypted);
386397

KitX Clients/KitX Core/KitX.Core/Device/PluginsServer.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ public class PluginsServer : IPluginServer
5454
/// <summary>
5555
/// Event raised when server port changes
5656
/// </summary>
57+
#pragma warning disable CS0067
5758
public event EventHandler<int>? PortChanged;
59+
#pragma warning restore CS0067
5860

5961
/// <summary>
6062
/// Gets the list of plugin connections
@@ -457,6 +459,11 @@ public class PluginConnection : IPluginConnection, IPluginConnector
457459
/// </summary>
458460
public string? ConnectionId { get; private set; }
459461

462+
/// <summary>
463+
/// IPluginConnector.ConnectionId — non-nullable explicit implementation
464+
/// </summary>
465+
string IPluginConnector.ConnectionId => ConnectionId!;
466+
460467
/// <summary>
461468
/// Gets or sets the plugin info
462469
/// </summary>
@@ -485,7 +492,9 @@ public class PluginConnection : IPluginConnection, IPluginConnector
485492
/// <summary>
486493
/// Event raised when plugin reports status (IPluginConnector implementation)
487494
/// </summary>
495+
#pragma warning disable CS0067
488496
public event EventHandler<PluginStatusReportEventArgs>? StatusReport;
497+
#pragma warning restore CS0067
489498

490499
/// <summary>
491500
/// Constructor

KitX Clients/KitX Core/KitX.Core/Plugin/PluginsManager.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,10 @@ public async Task<bool> ImportPluginAsync(string kxpFilePath)
267267

268268
loaderInfo = new LoaderInfo
269269
{
270-
LoaderName = loaderStruct.TryGetProperty("LoaderName", out var name) ? name.GetString() : "Unknown",
271-
LoaderVersion = loaderStruct.TryGetProperty("LoaderVersion", out var version) ? version.GetString() : "1.0.0",
272-
LoaderLanguage = loaderStruct.TryGetProperty("LoaderLanguage", out var lang) ? lang.GetString() : "Unknown",
273-
LoaderFramework = loaderStruct.TryGetProperty("LoaderFramework", out var fw) ? fw.GetString() : "Unknown",
270+
LoaderName = loaderStruct.TryGetProperty("LoaderName", out var name) ? name.GetString() ?? "Unknown" : "Unknown",
271+
LoaderVersion = loaderStruct.TryGetProperty("LoaderVersion", out var version) ? version.GetString() ?? "1.0.0" : "1.0.0",
272+
LoaderLanguage = loaderStruct.TryGetProperty("LoaderLanguage", out var lang) ? lang.GetString() ?? "Unknown" : "Unknown",
273+
LoaderFramework = loaderStruct.TryGetProperty("LoaderFramework", out var fw) ? fw.GetString() ?? "Unknown" : "Unknown",
274274
SelfLoad = loaderStruct.TryGetProperty("SelfLoad", out var selfLoad) && selfLoad.GetBoolean(),
275275
Tags = new Dictionary<string, string>()
276276
};
@@ -335,13 +335,13 @@ public async Task<bool> ImportPluginAsync(string kxpFilePath)
335335
}
336336

337337
// Parse other fields
338-
pluginInfo.AuthorName = pluginStruct.TryGetProperty("AuthorName", out var author) ? author.GetString() : "Unknown";
339-
pluginInfo.AuthorLink = pluginStruct.TryGetProperty("AuthorLink", out var authorLink) ? authorLink.GetString() : "";
340-
pluginInfo.PublisherName = pluginStruct.TryGetProperty("PublisherName", out var publisher) ? publisher.GetString() : "Unknown";
341-
pluginInfo.PublisherLink = pluginStruct.TryGetProperty("PublisherLink", out var publisherLink) ? publisherLink.GetString() : "";
342-
pluginInfo.IconInBase64 = pluginStruct.TryGetProperty("IconInBase64", out var icon) ? icon.GetString() : "";
338+
pluginInfo.AuthorName = pluginStruct.TryGetProperty("AuthorName", out var author) ? author.GetString() ?? "Unknown" : "Unknown";
339+
pluginInfo.AuthorLink = pluginStruct.TryGetProperty("AuthorLink", out var authorLink) ? authorLink.GetString() ?? "" : "";
340+
pluginInfo.PublisherName = pluginStruct.TryGetProperty("PublisherName", out var publisher) ? publisher.GetString() ?? "Unknown" : "Unknown";
341+
pluginInfo.PublisherLink = pluginStruct.TryGetProperty("PublisherLink", out var publisherLink) ? publisherLink.GetString() ?? "" : "";
342+
pluginInfo.IconInBase64 = pluginStruct.TryGetProperty("IconInBase64", out var icon) ? icon.GetString() ?? "" : "";
343343
pluginInfo.IsMarketVersion = pluginStruct.TryGetProperty("IsMarketVersion", out var marketVer) && marketVer.GetBoolean();
344-
pluginInfo.RootStartupFileName = pluginStruct.TryGetProperty("RootStartupFileName", out var rootFile) ? rootFile.GetString() : "";
344+
pluginInfo.RootStartupFileName = pluginStruct.TryGetProperty("RootStartupFileName", out var rootFile) ? rootFile.GetString() ?? "" : "";
345345

346346
if (pluginStruct.TryGetProperty("PublishDate", out var publishDate))
347347
{

KitX Clients/KitX Core/KitX.Core/Workflow/BlockScripting/BlockScriptExecutionGlobals.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public void Pause(int milliseconds)
165165
/// 调用插件函数。所有分发策略(类型化调用、fire-and-forget vs 同步等待)
166166
/// 由 RealPluginManager.CallAuto() 内部自动完成,调用方无需关心。
167167
/// </summary>
168-
public object? PluginCall(string pluginName, string methodName, params object?[] args)
168+
public object? PluginCall(string pluginName, string methodName, params object[] args)
169169
{
170170
if (_pluginManager == null)
171171
{
@@ -178,7 +178,7 @@ public void Pause(int milliseconds)
178178
{
179179
PluginName = pluginName,
180180
MethodName = methodName,
181-
Parameters = args ?? Array.Empty<object?>()
181+
Parameters = args ?? Array.Empty<object>()
182182
};
183183

184184
try

KitX Clients/KitX Core/KitX.Core/Workflow/Blueprint/Pipeline/NodeBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private bool IsRegistryFlowControlTerminator(FormattedStatement stmt)
241241
}
242242
else
243243
{
244-
var isHelper = _helperNames.Contains(stmt.FunctionName);
244+
var isHelper = _helperNames.Contains(stmt.FunctionName ?? string.Empty);
245245
if (isHelper)
246246
{
247247
var helperNode = (CallHelperNode)_registry.Create(BlueprintNodeType.CallHelper);

KitX Clients/KitX Core/KitX.Core/Workflow/RealPluginManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ private void OnPluginMessageReceived(object? sender, PluginMessageReceivedEventA
9393
{
9494
Log.Information($"[RealPluginManager] OnPluginMessageReceived called with message: {e.Message?.Substring(0, Math.Min(200, e.Message?.Length ?? 0))}...");
9595

96+
if (e.Message is null) return;
97+
9698
var kwc = JsonSerializer.Deserialize<Request>(e.Message, _serializerOptions);
9799
if (kwc?.Content is null)
98100
{

0 commit comments

Comments
 (0)