/// <summary> /// gets a content from ContentOut-Func /// and writes it into a file /// </summary> public void Save() { if (ContentOut == null) { return; } try { DefaultDialogValues(SaveFileDialog, WriteFilter); var content = ContentOut(); if (content != null) { var info = StreamContentIoManager.GetContentInfo(content); if (info != null) { string ext = null; SaveFileDialog.Filter = StreamContentIoManager.GetFilter(info, out ext) + "All Files|*.*"; SaveFileDialog.DefaultExt = ext; } else { SaveFileDialog.Filter = "All Files|*.*"; } var fileName = ""; if (content.Source != null) { fileName = content.Source.ToString(); } else if (content.Description != null) { fileName = content.Description.ToString(); } SaveFileDialog.SetFileName(fileName); if (FileDialogShow(SaveFileDialog, false) == DialogResult.Ok) { StreamContentIoManager.ConfigureSinkIo = s => ConfigureSink(s); StreamContentIoManager.WriteSink(content, IoUtils.UriFromFileName(SaveFileDialog.FileName)); SaveFileDialog.ResetFileName(); } } } catch (Exception ex) { Registry.Pooled <IExceptionHandler>().Catch(ex, MessageType.OK); } }