我试图在我的.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