Conversation
* Stream serializer version is now **3** * Changed write extension methods to be non-generic where possible + Added `SerializerException.Wrap(Async)` + Added non-generic read extensions where possible + Reduced reflection usage where possible to improve performance + Using cached reflection to improve reflection performance + Lots of code refactoring + Added more fine grained tests - Fixed some bugs
* `Write(Fixed)Array*` methods won't redirect a `byte[]` to `WriteBytes*` anymore - use `WriteBytes*` directly instead + Added `SerializerException.From` + Added `(ReadOnly)Span` and `(ReadOnly)Memory` type overloads for (fixed) array writing/reading + Added `NO_INLINE` pre-compiler constant to disable aggressive method inlining + Changed the way allowed typed are determined to support any generic type and inherited types + Added `IDictionary`, `IList` and `Stream` to the list of allowed types - Bugfix: `WriteSerializerVersion*` uses the customizable `StreamSerializer.Version` now - Bugfix: `ReadSerializerVersion` allows using a customized serializer version now (only the birst 8 bits are used for the serializer version, all other bits can be used for customizing)
+ `StreamSerializerAttribute` can now be used to mark the preferred serializer constructor + Added fluent asynchronous API for `StreamExtensions` writing methods - Fixed `short` was serialized as `int` when using `WriteNumber` - Fixed a bug when using the serializer constructor of a `(Disposable)StreamSerializerBase` type
* Removed `ArrayPool<byte>` arguments from most of the (reading) methods (`StreamSerializer.BufferPool` will be used everywhere instead) + Added `ISerializerOptions.Key/ValueOptions`, `ISerializerOptions.Serializer` and `ISerializerOptions.IsNullable` + Added `StreamExtensions.Read/WriteItem(Async)` + Added `StreamExtensions.Read/WriteAnyItemHeader(Async)` + Added `WriteAny*` method overloads which allow skipping the header writing + Added `SerializerTypes` + Added `Type` extensions `SerializerHelper.GetItemSerializerInfo` and `SerializerHelper.GetItemDeserializerInfo` + Added `Type` extensions `SerializerHelper.FindSerializer` and `SerializerHelper.FindDeserializer` + Added `SerializerHelper.RequiresTypeName` for `ObjectType` + Added `SerializerHelper.RequiresObjectWriting` for `ObjectType` + Added `SerializerHelper.EnsureCorrectObjectType` for `ObjectType` + Added `StreamSerializerAttribute.Serializer` + Optimized array/list/dictionary/object writing/reading for most of the supported key/value/object types + Added support for nullable array/list/dictionary values + Added `SerializerOptionsFluentExtensions` + Added `SerializerHelper.GetObjectType` extension for `Type` + Added `SerializerHelper.IsGeneric` extension for `ObjectTypes` + Added `Type` writing/reading methods and `SerializedTypeInfo`
* Methods use a context now, replacing serializer version and cancellation token arguments * Contains "unsafe" code now + Added `SerializerHelper.IsZero` and `SerializerHelper.IsBreak` extensions for `ObjectTypes` + Added `SequenceTypes` for context based cache usage informations + Added `SerializerContextBase`, `SerializerContext`, `DeserializerContext`, `ISerializerContext`, `ISerializationContext` and `IDeserializationContext` + Added `ItemSerializerContext` and `ItemDeserializerContext` + Added `SerializerHelper.GetClrType` extension for `NumberTypes` + Added new project `Strem-Serializer-Extensions-Full`, which will contain advanced serialization tools - Fixed a bug in `StreamSeralizer.IsTypeAllowed`: Types with a `StreamSerializerAttribute` are now allowed per default
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SerializerException.Wrap(Async)