settings_re4

This commit is contained in:
lincube
2026-03-13 22:20:12 +08:00
parent 3b3f060f33
commit 5fdaa2539b
89 changed files with 5778 additions and 192 deletions

View File

@@ -11,6 +11,7 @@ using System.Threading;
using System.Threading.Tasks;
using LanMountainDesktop.Services;
using LanMountainDesktop.Services.Settings;
using LanMountainDesktop.PluginSdk;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -310,10 +311,15 @@ public sealed class PluginLoader
services.AddSingleton(runtimeContext.Manifest);
services.AddSingleton<IReadOnlyDictionary<string, object?>>(runtimeContext.Properties);
services.AddSingleton<IPluginMessageBus, PluginMessageBus>();
services.AddSingleton<IPluginSettingsService>(provider =>
new PluginScopedSettingsService(
runtimeContext.Manifest.Id,
provider.GetRequiredService<ISettingsService>()));
RegisterHostService<IPluginPackageManager>(services, hostServices);
RegisterHostService<IHostApplicationLifecycle>(services, hostServices);
RegisterHostService<IPluginExportRegistry>(services, hostServices);
RegisterHostService<ISettingsFacadeService>(services, hostServices);
RegisterHostService<ISettingsService>(services, hostServices);
RegisterHostService<ISettingsCatalog>(services, hostServices);

View File

@@ -55,6 +55,7 @@ public sealed class PluginRuntimeService : IDisposable
_packageManager,
_applicationLifecycle,
_exportRegistry,
_settingsFacade,
_settingsFacade.Settings,
_settingsFacade.Catalog);
_loaderOptions = CreateOptions();
@@ -824,6 +825,7 @@ public sealed class PluginRuntimeService : IDisposable
private readonly IPluginPackageManager _packageManager;
private readonly IHostApplicationLifecycle _applicationLifecycle;
private readonly IPluginExportRegistry _exportRegistry;
private readonly ISettingsFacadeService _settingsFacade;
private readonly ISettingsService _settingsService;
private readonly ISettingsCatalog _settingsCatalog;
@@ -831,12 +833,14 @@ public sealed class PluginRuntimeService : IDisposable
IPluginPackageManager packageManager,
IHostApplicationLifecycle applicationLifecycle,
IPluginExportRegistry exportRegistry,
ISettingsFacadeService settingsFacade,
ISettingsService settingsService,
ISettingsCatalog settingsCatalog)
{
_packageManager = packageManager;
_applicationLifecycle = applicationLifecycle;
_exportRegistry = exportRegistry;
_settingsFacade = settingsFacade;
_settingsService = settingsService;
_settingsCatalog = settingsCatalog;
}
@@ -858,6 +862,11 @@ public sealed class PluginRuntimeService : IDisposable
return _exportRegistry;
}
if (serviceType == typeof(ISettingsFacadeService))
{
return _settingsFacade;
}
if (serviceType == typeof(ISettingsService))
{
return _settingsService;