using System.Runtime.Serialization; using QwirkleClassLibrary.Games; namespace QwirkleClassLibrary.Persistences; public class GamePersistenceJson : IGamePersistence { public void SaveGame(Game game) { var serializer = new DataContractSerializer(typeof(Game)); using (Stream writer = File.Create("Game.json")) { serializer.WriteObject(writer, game); } } public Game LoadGame() { var serializer = new DataContractSerializer(typeof(Game)); using (Stream reader = File.OpenRead("Game.json")) { return serializer.ReadObject(reader) as Game ?? throw new InvalidOperationException(); } } }