Msgpack-Cli v0.9.0 Release Notes
Release Date: 2017-08-26 // over 6 years ago-
๐ This including important bug fixes and some performance improvements. Following note includes features which were released in 0.9.0 previews.
๐ NEW FEATURES
- Enum name transformation via
SerializationContext.EnumSerializationOptions.NameTransformer
.
Built in transformer is placed inEnumTransoformers
.
Issue #184. - ๐ Polymorphic attributes now supports type qualification. Issue #171.
- โ Runtime type polymorphism now supports name based type verification. This feature allows to prevent loading malicious or unknown types ibefore assembly loading.
- Asymmetric serializers. You can generate "pack only" serializer when you set SerializationContext.CompabilityOptions.AllowAsymmetricSerializer to true. #68.
- ๐ Built in serializer for System.Text.StringBuilder now supports UnpackTo.
- โ Add serialization to/from MessagePackObject as extension methods of MessagePackSerializer and MessagePackSerializer. Issue #90
- ๐ Users of serializer code generator API can specify TextWriter to output. This may improve tooling chain.
- ๐ Users of serializer code generator API can suppress [DebuggerNonUserCode] attribute to enable debugger step in.
- SerializerRepository API now expose ContainsFor and GetRegisteredSerializers methods to investigate registered serializers.
- SerializationContext.DisablePrivilegedAccess for restricted environment like Silverlight to select between granting permission or relinquish non-public access.
- ๐ UWP build is now included.
- ๐ ByteArrayPacker/ByteArrayUnpacker. They are suitable for fixed pattern serialization/deserialization.
- Fast mode of unpacker which omits nested collection management. This option can be disabled with setting UnpackerOptions.ValidationLevel to ValidationLevel.Collection.
๐ IMPROVEMENTS
- Byte array based serialization API now uses ByteArrayPacker/ByteArrayUnpacker, improves about 40% faster than Stream based.
- Deserialization now uses ValidationLevel.None, improves about 30% faster than validating one.
- ๐ Packer/Unpacker performance improvements about 10-20%. As a result, new byte array "fast" unpacker is about 3x faster than previous unpacker.
๐ BUG FIXES
- ๐ Fix nuspec to prevent old NuGet clients which do not support .NET Standard TFMs. Issue #177.
- The generated code for the type which has Tuple typed member uses old PackHelper API.
- ๐ Fix struct deserialization. Issue #189. Thank you @samcragg!
- ๐ Fix asynchronous packing is not be emitted correctly. Issue #201
- ๐ Fix SerializerCodeGenerator does not handle collections correctly for IsRecursive = true. Issue #203
- ๐ Fix extra field causes IndexOutOfBoundException when reflection based serializers are used. Issue #199
- ๐ Fix some built-in serializers throws InvalidOperationException instead of SerializationException for type errors. Issue #204
- ๐ Fix a combination of readonly members and collection members incorrect code generation when the type also have deserialization constructor. Issue #207.
- ๐ Fix built-in collection serializers such as List serializer causes SecurityException when the program run in restricted environment like Silverlight. Issue #205.
- ๐ Fix null items of complex type in List or Dictionary<TKey, TValue> will not be deserialized as null. Issue #211. (from 0.8.1)
- ๐ Fix types which implement IPackable and IUnpackable but do not have any members cannot be serialized. Issue #202
- ๐ Fix Windows Native build error. Issue #206.
- ๐ Fix constructor deserialization fails if the constructor parameters order is not lexical. Issue #233
- ๐ Fix asynchronous multi dimensional array deserialization corruption.
- ๐ Fix enum serialization throws NullReferenceException in Unity. Issue #215.
- ๐ Fix MessagePackSerializer.Capability does not work correctly in Unity.
- ๐ Fix polymorphic serializer error in Unity.
- Enum name transformation via