/// <summary> /// Saves the specified model to the stream using the serializer. /// </summary> /// <param name="model">The model.</param> /// <param name="stream">The stream.</param> /// <param name="serializer">The serializer.</param> public static void Save(this ModelBase model, Stream stream, IModelBaseSerializer serializer) { Argument.IsNotNull("model", model); Argument.IsNotNull("stream", stream); Argument.IsNotNull("serializer", serializer); serializer.Serialize(model, stream); }
/// <summary> /// Saves the specified model to the file using the specified serializer. /// </summary> /// <param name="model">The model.</param> /// <param name="filePath">The file path.</param> /// <param name="serializer">The serializer.</param> public static void Save(this ModelBase model, string filePath, IModelBaseSerializer serializer) { Argument.IsNotNullOrWhitespace("filePath", filePath); using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) { Save(model, fileStream, serializer); } }
/// <summary> /// Serializes and deserializes using the specified serializer. /// </summary> /// <typeparam name="TModel">The type of the T model.</typeparam> /// <param name="model">The model.</param> /// <param name="serializer">The serializer.</param> /// <returns>System.Object.</returns> public static TModel SerializeAndDeserialize <TModel>(TModel model, IModelBaseSerializer serializer) where TModel : ModelBase { using (var memoryStream = new MemoryStream()) { serializer.Serialize(model, memoryStream); memoryStream.Position = 0L; return((TModel)serializer.Deserialize(typeof(TModel), memoryStream)); } }