Manipular membros não mapeados 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), elas serão simplesmente ignoradas. A partir do .NET 8, é possível especificar que todas as propriedades da carga útil devem existir no POCO. Se não estiverem, será lançada uma exceção JsonException durante o processo de desserialização. Você pode configurar esse comportamento de três maneiras:
Anote o seu tipo POCO com o atributo JsonUnmappedMemberHandlingAttribute, especificando Skip ou Disallow para os membros não mapeados.
[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.)