Как избавиться от атрибутов DataContract / DataMember для сериализации в веб-интерфейсе aspnetcore 2.1? - PullRequest
0 голосов
/ 29 мая 2019

Я смотрю на некую старую кодовую базу, которая проект webapi в aspnetcore 2.1 . Объекты, отправленные как результаты, помечены как DataContracts и т. Д., См. Это:

    [DataContract]
    [Entity(Title = "Unit")]
    public class Unit : EntityBase
    {
        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public string Symbol { get; set; }
    }

Это, я знаю, для сериализации в / из JSON и XML, но если API не требуется отправлять XML-ответ, тогда эти атрибуты не нужны, по крайней мере, для Json.NET, который уже является частью проекта. , Однако, если я удаляю какой-либо элемент данных или атрибут контракта данных, значение по умолчанию не работает, и этот объект или свойство ведет себя так, как будто JsonIgnore был применен.

Я искал всю конфигурацию проекта, чтобы увидеть, было ли что-то установлено, какое-то свойство или переключатель, чтобы это произошло, но не смог найти место, где даже был доступен DataContractSerializer. так что вопрос

Как мне избавиться от этих атрибутов, и все же моя сериализация все равно будет работать нормально? Я знаю, что пожертвовал бы сериализацией Xml, но это внутренний проект, и нам совсем не нужна сериализация xml.

...