验证DTO并获取错误消息

时间:2017-10-16 11:55:22

标签: c# validation

我正在开发一个Web API2应用程序,需要有条件地验证客户端发送的DTO。我目前正在使用基于属性的验证。 我的设计是有一个IDtoValidator接口,它有一个IsValid()方法来验证数据。 我还需要以用户可读的格式提供错误消息,该格式存在于接口本身中,以便实现接口的每个类都可以放入自己的错误消息。

以下是我的课程:

public interface IDtoValidator
{
    bool IsValid();
}

public class FormResponseDto : BaseResponseDto, IDtoValidator
{

     public bool IsValid()
     { ... some logic to validate the model...}
}

我在动作方法中验证的想法: 行动方法:

public async Task<IHttpActionResult> MyMethod(FormResponseDto dto)
    {
         if(dto.IsValid())
            return BadRequest(dto.GetErrorMessage());
    }

请为此建议任何干净的设计。 问题是在isValid()方法中我需要设置errorMessage,这是接口的另一个属性。只需要私密设置,这不能在界面中完成。

1 个答案:

答案 0 :(得分:1)

您可以在界面中公开Getter,如

String GetError()

List<String> GetErrors()

在第二个原型中,您可能希望返回一个不可变的集合\ list,以便无法将Error(s)添加到外部列表中。