/// <summary> /// print specified <paramref name="message"/> to logger file /// </summary> /// <param name="message">Message to log</param> public static void Log(string message) { lock (FileFolderHelper.LogFilepath) { StreamWriter writer = null; FileStream file = null; try { FileFolderHelper.CheckAndCreateFile(FileFolderHelper.LogFilepath); file = new FileStream(FileFolderHelper.LogFilepath, FileMode.Append); writer = new StreamWriter(file); writer.WriteLine(DateTime.Now.ToString("HH:mm:ss.ms") + " " + message); } catch (Exception e) { Console.WriteLine(e.Message); } finally { writer?.Close(); file?.Close(); writer = null; file = null; } } }
/// <summary> /// Serialize object <paramref name="obj"/> to file <paramref name="filePath"/> /// </summary> /// <typeparam name="TObject">Serializable type</typeparam> /// <param name="obj">Object to serialize</param> /// <param name="filePath">File to which object will be serialized</param> public static void Serialize <TObject>(TObject obj, string filePath) { try { FileFolderHelper.CheckAndCreateFile(filePath); var formatter = new BinaryFormatter(); using (var stream = new FileStream(filePath, FileMode.Create)) { formatter.Serialize(stream, obj); } } catch (Exception ex) { Logger.Log($"Failed to serialize data to file {filePath}", ex); throw; } }
/// <summary> /// If <paramref name="obj"/> is null, deletes file <paramref name="filePath"/>, otherwise serialize <paramref name="obj"/> to file <paramref name="filePath"/> /// </summary> /// <typeparam name="TObject">Serializable type</typeparam> /// <param name="obj">Object to serialize</param> /// <param name="filePath">File to which object will be serialized</param> public static void SerializeOrDeleteFile <TObject>(TObject obj, string filePath) { try { if (obj == null) { FileFolderHelper.CheckAndDeleteFile(filePath); } else { Serialize(obj, filePath); } } catch (Exception) { throw; } }