【发布时间】:2022-01-22 12:03:57
【问题描述】:
通过了
var badRequestObjectResult = new BadRequestObjectResult(new { ErrorMessage = "Hi" });
dynamic response = badRequestObjectResult.Value;
Assert.Equal("Hi", response.ErrorMessage);
虽然失败了
dynamic response2 = ((BadRequestObjectResult)result).Value;//result is an IActionResult
Assert.Equal("Hi", response2.ErrorMessage);
“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:‘object’不包含‘ErrorMessage’的定义”
【问题讨论】:
-
第二个例子中的“结果”来自哪里?
-
在签名中返回 IActionResult 并在正文中返回 BadRequestObjectResult 构造该对象的方法,如传递的代码中所示: new BadRequestObjectResult(new { ErrorMessage = "Hi" });