Игнорировать свойство из сериализации в коллекции типа с Json.Net - PullRequest
0 голосов
/ 04 сентября 2018

Есть ли "простой способ" игнорировать свойство из сериализации модели для коллекции типа в Asp.Net Core?

Sample

public sealed class MainViewModel
{
  public Guid Id { get; set; }

  [JsonIgnore("PropertyInSubViewModel")]
  public ICollection<SubViewModel> Products { get; set; }
}

Идея заключалась в том, чтобы удалить некоторое свойство в SubViewModel из сериализации модели, поэтому, когда я получу его в своем действии, у него будет установлено значение по умолчанию, а не значение, установленное в запросе.

1 Ответ

0 голосов
/ 04 сентября 2018

Не с JsonIgnore. Это может быть применено только к фактическому свойству, которое вы хотите игнорировать, и является постоянным в этой точке. Однако JSON.NET поддерживает условную сериализацию . Самый простой и простой способ - добавить метод ShouldSerialize* в ваш класс. Очевидно, вам нужно определить какое-то условие, на которое вы могли бы опираться для определения, но это может быть простым, поскольку буквально устанавливает некоторые логические значения для экземпляров вашей модели подвидов. По сути, вы просто добавляете что-то вроде:

public class SubViewModel
{
    ...

    public bool ShouldSerializePropertyInSubViewModel()
    {
         // return true or false to either allow or disallow serializing the property on this instance
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...