我正在实现一个支持部分响应的Web API。
/api/users?fields=id,name,age
给定班级用户
[JsonObject(MemberSerialization.OptIn)] public partial class User { [JsonProperty] public int id { get; set; } [JsonProperty] public string firstname { get; set; } [JsonProperty] public string lastname { get; set; } [JsonProperty] public string name { get { return firstname + " " + lastname; } } [JsonProperty] public int age { get; set; } }
序列化所有属性时,Json格式化程序效果很好,但是我无法在运行时对其进行修改以告诉它忽略某些属性,具体取决于查询参数“字段”。
我正在使用JsonMediaTypeFormatter。
为了自定义格式化程序,我遵循了http://tostring.it/2012/07/18/customize-json-result-in-web- api/,但是我找不到任何有关如何强制格式化程序的示例忽略一些属性。
创建自己IContractResolver的告诉JSON.NET哪些属性需要序列化。官方文档中有一个示例,您可以从中汲取灵感。
IContractResolver