/// <summary> /// Default constructor /// </summary> /// <param name="settings">The serializer settings</param> /// <param name="stream">The stream to serialize to</param> /// <param name="logger">An optional logger to use for logging</param> public BinarySerializer(IBinarySerializerSettings settings, Stream stream, IBinarySerializerLogger logger = null) { Settings = settings; Stream = stream; Logger = logger; Writer = new Writer(stream, Settings.Endian); }
/// <summary> /// Reads from a binary stream using the default deserializer /// </summary> /// <typeparam name="T">The type to deserialize to</typeparam> /// <param name="stream">The stream</param> /// <param name="settings">The serializer settings</param> /// <param name="logger">An optional logger to use for logging</param> /// <param name="onPreSerializing">Optional action to run before serializing</param> /// <returns>The serialized data</returns> public static T ReadFromStream <T>(Stream stream, IBinarySerializerSettings settings, IBinarySerializerLogger logger = null, Action <IBinarySerializer, T> onPreSerializing = null) where T : IBinarySerializable, new() { using (logger) { // Create the deserializer var s = new BinaryDeserializer(settings, stream, logger); // Serialize the object var obj = s.SerializeObject <T>(default, onPreSerializing);
/// <summary> /// Reads a binary file using the default deserializer /// </summary> /// <typeparam name="T">The type to deserialize to</typeparam> /// <param name="filePath">The file path</param> /// <param name="settings">The serializer settings</param> /// <param name="logger">An optional logger to use for logging</param> /// <param name="onPreSerializing">Optional action to run before serializing</param> /// <returns>The serialized file data</returns> public static T ReadFromFile <T>(string filePath, IBinarySerializerSettings settings, IBinarySerializerLogger logger = null, Action <IBinarySerializer, T> onPreSerializing = null) where T : IBinarySerializable, new() { using (logger) { // Open the file as a stream using (var stream = File.OpenRead(filePath)) // Read from the stream return(ReadFromStream <T>(stream, settings, logger, onPreSerializing)); } }