Asp.net web api 一种在web api响应中动态返回部分对象的好方法?

Asp.net web api 一种在web api响应中动态返回部分对象的好方法?,asp.net-web-api,design-patterns,Asp.net Web Api,Design Patterns,我们有一个WebAPI项目,它返回如下对象 public class ChargesInfo { public string Code { get; set; } public decimal? Amc { get; set; } public DateTime? AmcDate { get; set; } public string AnnualChargeNote { get; set; } ..

我们有一个WebAPI项目,它返回如下对象

    public class ChargesInfo
    {
        public string Code { get; set; }
        public decimal? Amc { get; set; }
        public DateTime? AmcDate { get; set; }
        public string AnnualChargeNote { get; set; }
        .....
    }
我们希望允许我们的客户动态返回部分数据。 例如,他们可以调用:
api/returnFundInfo?fields=amc、amcdate、AnnualChargeNote
,我们只返回请求的字段

我认为,在业务逻辑中,我们仍然填充所有字段。然后在输出数据时,我可以使用一些技巧排除一些字段(可能是newton Json中的
ShouldSerialize
method)

这听起来是个好计划吗?有谁有更好的设计想法吗?

您可以使用具有开箱即用功能的


或者像

嗨,这听起来很有趣,但我对Odata的了解还不够,你的意思是我不需要编写任何代码来返回单个属性,而且都是由底层Microsoft代码完成的吗?这取决于具体情况。选择最适合你的方式。阅读更多关于OData的信息,尝试编写自定义ContractResolver,然后您将看到更好的方法
api/returnFundInfo?$select=amc,amcdate,AnnualChargeNote