Manipular membros ausentes durante a desserialização
Por padrão, se a carga JSON que você está desserializando contiver propriedades que não existem no tipo de objeto CLR antigo (POCO) desserializado, elas serão simplesmente ignoradas. A partir do .NET 8, você pode especificar que todos os membros devem estar presentes na carga útil. Se não estiverem, uma JsonException exceção é lançada. Você pode configurar esse comportamento de três maneiras:
Anote seu tipo POCO com o JsonUnmappedMemberHandlingAttribute atributo, especificando membros para Skip ou Disallow ausentes.
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public class MyPoco { public int Id { get; set; } } JsonSerializer.Deserialize<MyPoco>("""{"Id" : 42, "AnotherId" : -1 }"""); // JsonException : The JSON property 'AnotherId' could not be mapped to any .NET member contained in type 'MyPoco'.
Defina JsonSerializerOptions.UnmappedMemberHandling como um Skip ou Disallow.
Personalize o JsonTypeInfo contrato para o tipo relevante. (Para obter informações sobre como personalizar um contrato, consulte Personalizar um contrato JSON.)