Add ObjectSerializer to support serialization of known types without generics #7235
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.
This adds
ObjectSerializer
, which hasSerialize
andDeserialize
methods which accept aType
as a parameter. TheType
parameter is the expected type of the value being serialized/deserialized.In cases where the type exactly matches the type which was serialized, Orleans will not write full type information to the payload, and can instead set a flag in the payload indicating that the value is the expected type.
This means that the
Serialize
andDeserialize
calls must have the same exactType
value or the deserialization may not know how to deserialize the value.This complements the existing classes:
Serializer
, which has genericSerialize<T>
andDeserialize<T>
methods, whereT
is the expected type.Serializer<T>
, which hasSerialize
andDeserialize
methods which use the class'T
as the expected type.