Skip to content

Add ManagedType/SupportNull and extend value types#415

Merged
masesdevelopers merged 19 commits intomasterfrom
410-extends-supported-object-and-nesting-levels
Feb 18, 2026
Merged

Add ManagedType/SupportNull and extend value types#415
masesdevelopers merged 19 commits intomasterfrom
410-extends-supported-object-and-nesting-levels

Conversation

@masesdevelopers
Copy link
Collaborator

Description

Introduce managed-type metadata and broaden supported primitive types across Avro and Protobuf serializers.

  • Avro: added documentation and new fields (ManagedType, SupportNull) to AvroValueContainer.avsc and AvroKeyContainer.avsc; regenerated Avro classes and PropertyDataRecord with updated schema and generated-code version.
  • Runtime: AvroValueContainer.cs now maps various CLR types (Guid, DateTime, DateTimeOffset, char, sbyte, ushort, uint, ulong, decimal) to string-compatible storage, records ManagedType and SupportNull in PropertyDataRecord, and converts stored string values back to native types when rebuilding entity arrays. Also added CultureInfo usage and minor debug define change.
  • Protobuf: extended GenericValue (proto and generated code) with additional oneof variants (char, sbyte, ushort, uint, ulong, decimal) and two metadata fields (ManagedType, SupportNull); adjusted field numbers, serialization/deserialization, equality/hash, cloning, and GeneratedClrTypeInfo accordingly.
  • Tests: added/updated complex benchmark/test JSON configs and touched test project/Program to accommodate changes.

These changes enable richer type fidelity and nullability handling in KEFCore serialization across Avro and Protobuf formats.

Related Issue

closed #410

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Introduce managed-type metadata and broaden supported primitive types across Avro and Protobuf serializers.

- Avro: added documentation and new fields (ManagedType, SupportNull) to AvroValueContainer.avsc and AvroKeyContainer.avsc; regenerated Avro classes and PropertyDataRecord with updated schema and generated-code version.
- Runtime: AvroValueContainer.cs now maps various CLR types (Guid, DateTime, DateTimeOffset, char, sbyte, ushort, uint, ulong, decimal) to string-compatible storage, records ManagedType and SupportNull in PropertyDataRecord, and converts stored string values back to native types when rebuilding entity arrays. Also added CultureInfo usage and minor debug define change.
- Protobuf: extended GenericValue (proto and generated code) with additional oneof variants (char, sbyte, ushort, uint, ulong, decimal) and two metadata fields (ManagedType, SupportNull); adjusted field numbers, serialization/deserialization, equality/hash, cloning, and GeneratedClrTypeInfo accordingly.
- Tests: added/updated complex benchmark/test JSON configs and touched test project/Program to accommodate changes.

These changes enable richer type fidelity and nullability handling in KEFCore serialization across Avro and Protobuf formats.
@masesdevelopers masesdevelopers self-assigned this Feb 17, 2026
@masesdevelopers masesdevelopers added enhancement New feature or request KEFCore The issue is releated to KEFCore labels Feb 17, 2026
@masesdevelopers masesdevelopers linked an issue Feb 17, 2026 that may be closed by this pull request
@masesdevelopers masesdevelopers added KEFCore SerDes The issue is releated to KEFCore SerDes .NET Pull requests that update .net code labels Feb 17, 2026
@masesdevelopers masesdevelopers merged commit 7ef12a8 into master Feb 18, 2026
403 of 414 checks passed
@masesdevelopers masesdevelopers deleted the 410-extends-supported-object-and-nesting-levels branch February 18, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request KEFCore SerDes The issue is releated to KEFCore SerDes KEFCore The issue is releated to KEFCore .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extends supported object and nesting levels

1 participant