Gents,
Was pulling my hair out a few days ago trying to understand why my objects were getting persisted to storage, but when reading those same objects back, I wasn't seeing my collection.
As expected, if I place the [Serializable] attribute on my storage class, any of the typical fields will get serialized and persisted to storage.
However, UNLESS I have [JsonProperty] attribute on the individual fields, the deserialization process misses them and returns null.
In particular, a HashSet field would be stored w/o [JsonProperty] attribute, but upon deserialization, it's null.
Add the attribute, and it returns the value found in the persisted file.
For some reason, I missed this field - but what was particularly maddening was other class fields that didn't have the [JsonProperty] attribute were getting read back - e.g. booleans and ints.
I haven't dug into the backend, but it does seem like inconsistent behavior.
One thing is for certain - I wont be soon forgetting to put the attributes on my fields!