【发布时间】:2020-04-28 14:09:41
【问题描述】:
我有一堂课
[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
Grade
Name
实际输出为: 要求:
Id
Salary (Not hidden)
Name
和响应为
Id
Grade
Salary (Not hidden)
Name
我正在使用 swagger 对此进行测试,并希望在请求中只看到 Id 和 Name,当我输入输入值并执行时,我希望在响应中看到 Id、Grade 和 Name。 Swagger 显示 Salary 及其价值。这发生在升级到 .net core 3.1 之后。我希望 Salary 字段不会被序列化,并且不应该在响应中公开
【问题讨论】:
-
@HenkHolterman 我已经更新了问题 - 它没有隐藏薪水,我可以在回复中看到它们
-
@HenkHolterman 我正在使用 swagger 对此进行测试,并希望在请求中只看到 Id 和 Name,当我输入这些值并执行时,我希望在响应中看到 Id、Grade 和 Name .它也显示 Salary 及其价值。这发生在升级到 .net core 3.1 之后。我希望 Salary 字段不会被序列化,并且不应该在响应中公开
标签: swagger wcf-binding datacontract asp.net-core-3.1 datamember