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.
Changes:
JsonSerializer.{Serialize|Deserialize}
calls with direct converter access (JsonSerializerOptions.GetConverter
->converter.{Read|Write}
) to prevent frequent creation of top-level JSON reader stacks.ValueSpan
access instead of allocating intermediatestring
values (e.g. when comparing property names or parsing/formatting values).JsonEncodedText
constants for compile-time constant literals (e.g. property names).Utf8Parser
/Utf8Formatter
for primitive value conversions.SourceMarker<T>
should only (de-)serialize the wrapped type to prevent unnecessary allocations.IStreamSerializable
).SortOptions
special caseBreaking changes:
Later:
ISelfTwoWaySerializable
(used for array/dictionary requests/responses)ISelfSerializable
(used for descriptors)Related to:
All variants now have either a public
string Type
(internal, external, untyped) property or publicVariantType/Variant
properties (container). For non-exhaustive container variants like e.g.Aggregation
, these properties are settable.