public void Save(IAppData appData) { var serializer = new JsonSerializer(); using (var stream = _streamStore.OpenWrite(Filename)) using (var streamWriter = new StreamWriter(stream)) using (var jsonTextWriter = new JsonTextWriter(streamWriter)) { serializer.Serialize(jsonTextWriter, appData); } }
public Stream OpenWrite(string name) { var tempName = string.Join(".", new[] { name, Guid.NewGuid().ToString().Replace("-", "").Substring(0, 4), "tmp", }); Action rename = () => _streamStore.Rename(tempName, name); var stream = _streamStore.OpenWrite(tempName); var disposeNotifyingStream = new DisposeNotifyingStream(stream, rename); return(disposeNotifyingStream); }