如何使用属性注释检查DTO数据

时间:2016-11-21 08:40:40

标签: c# .net annotations decorator dto

我很难与来自第三方API的optional返回的20多个字符串类型属性达成协议。

示例:

Subject {
    subjectId (integer, optional),
    shortName (string, optional),
    shortCode (string, optional),
    colour (string, optional),
    description (string, optional),
    name (string, optional)
}

在我的代码中,在得到主题列表后,我必须检查每个可选属性以避免object reference exceptions。在主题非常简单的情况下:

var subjectId = subjectId ?? -1;
var name = !String.IsNullOrEmpty(name) ? name : String.Empty;
var boolValue = boolValue ?? false; // if a boolean value is optional

我使用Web API请求数据,因此JSON响应被反序列化为数据传输对象。

示例:

public class SubjectDto {
    public int? subjectId { get; set; }
    public string shortName { get; set; }
    public string shortCode { get; set; }
    public string colour { get; set; }
    public string description { get; set; }
    public string name { get; set; }
}

所以,我想知道是否可以用注释装饰DTO类属性,以便在反序列化JSON时自动处理检查?

subjects = await response.Content.ReadAsAsync<SubjectDto>();

虽然Subjects很简单,但它可以减少在某些其他类中检查20+ string,int,boolean属性的混乱。

0 个答案:

没有答案