. net обновление ядра 3.1: DataContract и DataMember - невозможно скрыть поле - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть класс с

[DataContract]
public class Request
{
   [DataMember]
   public int Id{get; set;}

   //calculated field 
   public int Salary{get; set;}

   [DataMember]
   public int Name{get; set;}

}

Мне удалось скрыть поле "Зарплата", не имея атрибута [DataMember]. Есть ли способ, которым я мог бы скрыть / не выставить это поле в запросе?

[DataContract]
public class EmployeeDetailResponse
{
   [DataMember]
   public int Id{get; set;}

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

   //Used while calculating grade and should be hidden
   public int Salary{get; set;}

   [DataMember]
   public int Name{get; set;}

}

ожидаемый результат: я хотел бы использовать запрос как:

запрос:

Id
Name

и ответ как

Id
Grade
Name

Фактический результат: Запрос:

Id
Salary (Not hidden)
Name

и Ответ как

Id
Grade
Salary (Not hidden)
Name

Я проверяю это, используя swagger, и ожидаю увидеть только Id и Name в запросе и при вводе входные значения и выполнить, я хотел бы видеть Id, Grade и Name в ответе. Swagger показывает Зарплату со своим значением Это происходит после обновления до. net core 3.1. Я ожидаю, что поле Заработная плата не будет сериализовано и не должно быть выставлено в ответе

...