相关疑难解决方法(0)

WebApi中的条件DataContract序列化

我试图在我的.net WebApi项目中找到有条件地包含和删除我的datacontract序列化属性的最佳方法.在我的Api中,我想允许用户指定他们想要返回的字段.

例如,假设我希望我的API返回以下类的实例.

public class Car
{
    public int Id { get; set; }
    public string Year { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
    public string Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,API调用不是请求整个对象,而只是想要Id和Make字段.所以返回JSON就是

 { "Id": 12345, "Make": "Ford"}
Run Code Online (Sandbox Code Playgroud)

而不是整个对象.

有没有一种方法可以使用DataContract Serializer来有条件地添加和删除返回对象的属性?

**编辑我查看了IgnoreDefault属性,我不相信它会完全符合我的需要.问题是我想根据api请求包含和排除属性,而不一定是它们是否有数据.

有没有办法挂钩反序列化过程并跳过某些属性?我可以做某种定制合同吗?

.net rest serialization datacontractserializer asp.net-web-api

2
推荐指数
1
解决办法
6696
查看次数