Проблема в том, что при вызове API и передаче значения null в свойство, не допускающее значения NULL, он возвращает ошибку 400, указывающую, что поле является обязательным. Однако когда я пытаюсь десериализовать эту модель с помощью System.Text.Json.JsonSerializer.Deserialize, она проходит без проблем.
Почему поведение этих двух моделей различается?
Я использую .NET 6
Вот небольшой пример кода
Код: Выделить всё
using System.Diagnostics;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Example;
public class Program
{
public static void Main(string[] args)
{
string json = "{\"name\": null}";
// I would love this to throw an exception because Name should not be null.
SomeClass sc = JsonSerializer.Deserialize(json)!;
Debug.Assert(sc.Name != null);
}
}
public class SomeClass
{
public string Name { get; }
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... oesnt-fail
Мобильная версия