Свойство Null json создает нулевую коллекцию, даже если она инициализирована в конструкторе. Почему?
Код-это только пример, а не производственный код, настолько простой, насколько это возможно, чтобы показать проблему. Проблема в том, что коллекция является нулевой, если контроллер получает нулевую коллекцию MyItems.
Модели:
public class PBS { public PBS() { MyItems = new List<int>(); } public ICollection<int> MyItems { get; set; } } public class Command : PBS { public int Id { get; set; } }
Контроллер:
public async Task<IActionResult> CreateCommandAsync([FromBody] Command command) { await Mediator.Send(command); //Mediator only calls handler based on command type }
Что я уже пробовал:
Итак, вопрос в том, почему, когда я посылаю JSON контроллеру с MyItems = null, то коллекция MyItems является нулевой, а не пустой? Разве конструктор не должен просто превратить его в пустой список? Что я здесь делаю не так? Все остальные веб-API ядра 2.2
Kornfeld Eliyahu Peter
Речь идет о порядке...
Инициализация в конструкторе предшествует набору свойства, и это переопределяет Предыдущее значение с помощью null...
Вы можете написать некоторый код в установщике свойств для обработки специального случая null...
Member 14637786
Ладно, я понял. Таким образом, единственным решением здесь является явная реализация setter и инициализация пустой коллекции при нулевом значении?