【发布时间】:2017-04-17 20:59:21
【问题描述】:
如果我开发一个 WebApi 动作方法
[Route]
public string Put([FromBody]MyClass value)
在构造函数中使用具有参数验证的 MyClass 类真的是个坏主意,例如:
public MyClass(string value)
{
if (!_pattern.IsMatch(value))
throw new ArgumentException($"Value should match RegEx: {_pattern}", nameof(value));
}
因此,在错误的请求中,它会从 JsonMediaTypeFormatter.ReadFromStreamAsync 引发异常,该异常发生在控制器或操作过滤器之外,因此我还没有找到通过ArgumentException 消息中的真实问题描述来响应客户端的方法。
即使这样的参数检查也没有放在 DTO 中,这对 WebApi 和真实(域模型)中唯一允许的 MyClass 是否应该创建相应的简单合同类而根本没有任何检查?
【问题讨论】:
标签: c# .net oop asp.net-web-api2 dto