Swagger .net core 3.1升级:DataContract和DataMember-无法隐藏字段

Swagger .net core 3.1升级:DataContract和DataMember-无法隐藏字段,swagger,wcf-binding,datacontract,asp.net-core-3.1,datamember,Swagger,Wcf Binding,Datacontract,Asp.net Core 3.1,Datamember,我有一节课要上 [DataContract] public class Request { [DataMember] public int Id{get; set;} //calculated field public int Salary{get; set;} [DataMember] public int Name{get; set;} } 我可以通过没有[DataMember]属性来隐藏字段“Salary”。有没有办法在请求中隐藏/不公开该字段

我有一节课要上

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

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

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

}
我可以通过没有[DataMember]属性来隐藏字段“Salary”。有没有办法在请求中隐藏/不公开该字段

[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
Salary (Not hidden)
Name

及回应为

Id
Grade
Name
Id
Grade
Salary (Not hidden)
Name
实际产出为: 请求:

Id
Salary (Not hidden)
Name

及回应为

Id
Grade
Name
Id
Grade
Salary (Not hidden)
Name

我正在使用swagger进行测试,希望在请求中只看到Id和Name,当我输入输入值并执行时,我希望在响应中看到Id、Grade和Name。大摇大摆地展示着工资的价值。这是在升级到.net core 3.1之后发生的。我希望薪资字段不会序列化,也不应该在响应中公开

使用
System.Text.Json.Serialization中的
[JsonIgnore]
来隐藏字段,以免序列化/炫耀


据我所知,DataContract/DataMember完全被忽略。

使用
System.Text.Json.Serialization中的
[JsonIgnore]
来隐藏字段,防止序列化/炫耀


据我所知,DataContract/DataMember完全被忽略。

@Henkholtman我已经更新了这个问题-它并没有隐藏工资,我可以在response@HenkHolterman我正在使用swagger进行测试,希望在请求中只看到Id和名称,当我输入这些值并执行时,我想在回复中看到Id、等级和姓名。它也在显示薪水及其价值。这是在升级到.net core 3.1之后发生的。我希望薪资字段不会序列化,也不应在response@HenkHolterman我已经更新了这个问题——它并没有隐藏工资,我可以在屏幕上看到它们response@HenkHolterman我正在使用swagger进行测试,希望在请求中只看到Id和名称,当我输入这些值并执行时,我想在回复中看到Id、等级和姓名。它也在显示薪水及其价值。这是在升级到.net core 3.1之后发生的。我希望薪资字段不会序列化,也不应该在响应中公开