diff --git a/GFramework.Game/setting/SettingsModel.cs b/GFramework.Game/setting/SettingsModel.cs index 6490f06..58312d5 100644 --- a/GFramework.Game/setting/SettingsModel.cs +++ b/GFramework.Game/setting/SettingsModel.cs @@ -13,7 +13,8 @@ namespace GFramework.Game.setting; /// - 管理 Settings Data 的生命周期(Load / Save / Reset / Migration) /// - 编排 Settings Applicator 的 Apply 行为 /// -public class SettingsModel : AbstractModel, ISettingsModel +public class SettingsModel(IDataLocationProvider locationProvider, TRepository repository) + : AbstractModel, ISettingsModel where TRepository : class, ISettingsDataRepository { private static readonly ILogger Log = @@ -28,9 +29,9 @@ public class SettingsModel : AbstractModel, ISettingsModel private readonly ConcurrentDictionary _data = new(); private readonly ConcurrentDictionary> _migrationCache = new(); private readonly ConcurrentDictionary<(Type type, int from), ISettingsMigration> _migrations = new(); - private IDataLocationProvider? _locationProvider; + private IDataLocationProvider? _locationProvider = locationProvider; - private ISettingsDataRepository? _repository; + private ISettingsDataRepository? _repository = repository; private ISettingsDataRepository DataRepository => _repository ?? throw new InvalidOperationException("ISettingsDataRepository not initialized.");