Table of Contents

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.

JsonSettingsAutosaveExtensions
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.

Enums

AutosavingState