fix(DynamoDBv2): check for properties marked required
when loading objects via DynamoDBContext
#3277
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.
Description
Add conditionally compiled checks for
RequiredMemberAttribute
, which is generated by the compiler for class members marked with therequired
keyword.Motivation and Context
C# 11 introduced the required keyword to signal to the compiler that class members must be initialized using an object initializer.
This is also used by
System.Text.Json.JsonSerializer
to perform data validation at runtime.When retrieving a POCO from DynamoDB via
DynamoDBContext
this modifier is ignored, making it possible to create invalid objects accidentally.Fixes #3276
Testing
git apply
:InvalidOperationException
thrown in the library, whereas in the current version an unexpectedNullReferenceException
is thrown in the application code.Screenshots (if appropriate)
Types of changes
Checklist
License