筛选序列化类属性以减少WebAPI有效内容

时间:2013-12-18 15:35:46

标签: c# webforms asp.net-web-api json.net

使用WebAPI的C#ASP.NET Webform站点

我有一个petapoco类,它有50个属性,但对于某些WebAPI方法,我想过滤哪些属性被序列化并发送到HttpResponseMessage中的客户端(以减少有效负载)。

例如,假设我在类中有以下类属性:

ID, FirstName, LastName, Address, City, State, Zip, DOB    

我需要一些WebApi方法来序列化每个属性,但也许我想要返回的另一种方法

ID, FirstName, LastName

是否有内置的方法来处理这个问题? 如果没有,那么构建一些东西来处理这个问题的最佳方法是什么?

编辑:我正在寻找一种不修改课程的方法

2 个答案:

答案 0 :(得分:0)

您应该能够为每个属性创建ShouldSerialize方法。

Xml serialization - Hide null values

使您能够动态决定哪些字段被序列化。不要担心链接说XML,也应该适用于JSON序列化。

答案 1 :(得分:0)

使用JsonIgnoreAttribute从序列化中排除属性。

例如在model.cs中:

public class Account
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    [JsonIgnore]
    public string Address { get; set; }
    [JsonIgnore]
    public string City { get; set; }
    [JsonIgnore]
    public string State { get; set; }
.
.
.
}