Namespace Nucs.JsonSettings.Autosave
Classes
- AutosaveAttribute
Marks a settings class (or a single property) whose setters should commit a save.
- AutosaveModule
The module
EnableAutosave()attaches to a woven settings instance: the shared suspension state of SuspensionModule plus the parts only the woven path needs -- the monitored-property set the woven advice consults, and the lifetime slot for the NotificationBinder.
- AutosaveRuntime
The runtime half of AutosaveAttribute. Infrastructure -- called from woven setters, not intended to be called directly.
- IgnoreAutosaveAttribute
Given Property will not be monitored for changes and autosave.
- NotificationBinder
Takes care of binding nested objects that implement INotifyCollectionChanged and/or INotifyPropertyChanged.
- SettingsBagAutosaveModule
The module SettingsBag attaches while its dictionary-backed autosave is enabled: the neutral suspension state of SuspensionModule and nothing else.
Structs
- SuspendAutosave
Suspends auto-saving until SuspendAutosave.Dispose or SuspendAutosave.Resume are called.
If changes are introduced while suspension then a save will be commited and resume or disposal.
Interfaces
- IAutosaveWoven
Compile-time proof that AspectInjector actually processed a class: the AutosaveAttribute aspect mixes this empty interface into every class it is applied to, in the same weave pass that appends the save advice to the setters. Source code never implements it -- the build does.