UniversalSerializer
UniversalSerializer copied to clipboard
System.ArgumentException: Stream was not readable (using CryptoStream)
I am using UniversalSerializer 3.18.3.14 and Unity 2019.1
-
Writing to a FileStream works, but writing to a CryptoStream throws an exception.
-
The exception only occurs when using the BinarySerializationFormatter.
-
Error does not happen when using XML or JSON serialization formatter.
This code works:
using (FileStream file = File.Create("/Users/Me/Desktop/File.txt"))
{
var s = new UniversalSerializer(file);
s.Serialize(myString);
}
This code also works: (CryptoStream, using XmlSerializationFormatter)
using (FileStream file = File.Create("/Users/Me/Desktop/File.txt"))
{
using (CryptoStream csEncrypt = new CryptoStream (file, encryptor, CryptoStreamMode.Write))
{
var s = new UniversalSerializer(csEncrypt, SerializerFormatters.XmlSerializationFormatter);
s.Serialize(myString);
}
}
This code throws error: System.ArgumentException: Stream was not readable (CryptoStream, using BinarySerializationFormatter)
using (FileStream file = File.Create("/Users/Me/Desktop/File.txt"))
{
using (CryptoStream csEncrypt = new CryptoStream (file, encryptor, CryptoStreamMode.Write))
{
var s = new UniversalSerializer(csEncrypt, SerializerFormatters.BinarySerializationFormatter);
s.Serialize(myString);
}
}
The error:
ArgumentException: Stream was not readable.
System.IO.BinaryReader..ctor (System.IO.Stream input, System.Text.Encoding encoding, System.Boolean leaveOpen) (at <3a07e6401b5d4cc98f7be596cb2130ba>:0)
System.IO.BinaryReader..ctor (System.IO.Stream input, System.Text.Encoding encoding) (at <3a07e6401b5d4cc98f7be596cb2130ba>:0)
UniversalSerializerLib3.FileTools.BinaryReader2..ctor (System.IO.Stream input, System.Text.Encoding encoding) (at Assets/UniversalSerialier3.18.3.14/Common/BinaryReaderWriter2.cs:37)
UniversalSerializerLib3.BinaryDeserializationFormatter..ctor (UniversalSerializerLib3.Parameters parameters) (at Assets/UniversalSerialier3.18.3.14/Common/BinarySerializationFormatter.cs:229)
UniversalSerializerLib3.SerializationFormatter.ChooseDefaultDeFormatter (UniversalSerializerLib3.Parameters parameters) (at Assets/UniversalSerialier3.18.3.14/Common/Serializer.cs:113)
UniversalSerializerLib3.UniversalSerializer..ctor (UniversalSerializerLib3.Parameters parameters) (at Assets/UniversalSerialier3.18.3.14/Common/UniversalSerializer.cs:187)
UniversalSerializerLib3.UniversalSerializer..ctor (System.IO.Stream stream) (at Assets/UniversalSerialier3.18.3.14/Common/UniversalSerializer.cs:119)
CryptoStreamErrorExample.Save () (at Assets/CryptoStreamErrorExample.cs:46)
CryptoStreamErrorExample.Update () (at Assets/CryptoStreamErrorExample.cs:18)
Full Unity script: CryptoStreamErrorExample.cs.txt
Is this a problem with UniversalSerializer or my code?