Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
            }
        }