So for example I have simple class:
public class TileMap {
private Dictionary<int, TileBrush> _tileBrushes;
public Texture2D SpriteSheet { get; }
public ReadOnlyDictionary<int, TileBrush> TileBrushes { get; } // TileBrush is custom content
public TileMap(Texture2D spriteSheet, IEnumerable<TileBrush> tileBrushes) {
this._tileBrushes = tileBrushes.ToDictionary(x => x.Id);
this.TileBrushes = new ReadOnlyDictionary<int, TileBrush>(this._tileBrushes);
}
}
So in case you described(Device lost) I have to load SpriteSheet and TileBrushes again? This will force public setters for all properties and collection type change.