Я возвращаю IActionResult
со значением анонимного объекта из метода контроллера.
Как мне снова получить данные?
Вот метод контроллера, сведенный к самой проблеме:
[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile file)
{
long size = file.Length;
return Ok(new { count = 1, size });
}
Тогда я получаю свойство .Value
, которое является object
, и сделаю его dynamic
.
Но нет, это не признается.
[Fact]
public async Task UploadFileTest()
{
// # Given.
var formFile = new Mock<IFormFile>();
var sut = new HomeController(null);
// # When.
IActionResult result = await sut.UploadFile(formFile.Object);
// # Then.
OkObjectResult okResult = (OkObjectResult)result; // Ok.
dynamic dynValue = okResult.Value; // Ok.
var count = dynValue.count; // Not ok.
}
Ожидаемый результат:
count
должно быть 1.
Фактический результат:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: «объект» не содержит определения для «счетчика»