Move the binary (de)serialization of objects (class / struct) into new types and improvements.
👕 Refactor serialization code into new types: BinarySerializer and BinaryDeserializer
DataWriter and DataReader only deal with primitive types, arrays and strings
🐛 Fix undefined property order by introducing the new attribute BinaryOrder
Mandatory in .NET 6, optional in .NET 8
✨ Serializer type inspection customizable via new interface ITypeFieldsNavigator. Default implementation inspects the public properties with getter and setter
👕 Rename attribute BinaryForceEndianness to BinaryEndianness
👕 Move attribute properties WriteAs and ReadAs into UnderlyingType
✨ The default type for enums is now its underlying defined type in code
✨ Support properties from base classes (inheritance)
✨ New API in DataWriter to write integers of 24-bits
🔥 The attribute BinarySerializable is not used anymore
☔ Add more unit tests
⬆️ Minor unrelated changes: update dependencies and build system
This PR closes #207
Quality check list
[x] Related code has been tested automatically or manually
[x] Related documentation is updated It doesn't exist yet
Move the binary (de)serialization of objects (class / struct) into new types and improvements.
BinarySerializer
andBinaryDeserializer
DataWriter
andDataReader
only deal with primitive types, arrays and stringsBinaryOrder
ITypeFieldsNavigator
. Default implementation inspects the public properties with getter and setterBinaryForceEndianness
toBinaryEndianness
WriteAs
andReadAs
intoUnderlyingType
DataWriter
to write integers of 24-bitsBinarySerializable
is not used anymoreThis PR closes #207
Quality check list
Related documentation is updatedIt doesn't exist yetAcceptance criteria
Follow-up work
Example