如何从web api响应中删除没有数据的属性

时间:2018-02-22 04:00:41

标签: c# list asp.net-web-api reflection

我有一个像

这样的课程
 public class CommonMasterDataResponse
{
    public List<MyClass> dto1{ get; set; }
    public List<MyClass> dto2 { get; set; }
    public List<MyClass> dto3 { get; set; }
    .
    .
    .
    public List<MyClass> dto100 { get; set; }
}

我已经从我的网络api方法返回了它。现在我想删除所有没有数据的属性。就像在web api中我已经将数据分配给dt01和dto2然后如果我返回CommonMasterDataResponse对象那么它只渲染dto1和dto2。 我对c#很新。 kinldy给我建议如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

你可以尝试这段代码吗?

public class CommonMasterDataResponse
{
    public CommonMasterDataResponse()
    {

    }

    public bool ShouldSerializeDto1()
    {
        return Dto1.Any();
    }

    [XmlElement(IsNullable = true)]
    public List<string> Dto1 { get; set; }
}

但是,我认为一般来说这是一种不好的做法。尝试为每个DTO创建单独的Dtos和API端点。这样你可以避免这种情况。它易于编码和维护。此外,我相信这会对服务器和客户端造成影响。