[英]c# how to deserialize IFormFile
我敢肯定有人有同样的问题,但是我什么也没找到。 我发送发布请求以获取文件,并且得到此模型作为响应:
public class ResponseWithFile
{
public bool IsSuccessful { get; set; }
public List<int> Errors { get; set; }
public IFormFile File { get; set; }
}
我从控制器收到以下响应:
[Route("get")]
[HttpPost]
public async Task<IActionResult> GetFile([FromBody]GetFileDto request)
{
var result = _fileService.GetFile(request.Id, request.ContentType);
if (result.IsSuccessful)
return Ok(result);
return BadRequest(result);
}
响应是正确的,我可以将其读取为字符串,但是当我尝试将其反序列化为响应对象时,出现错误:
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
string respString = string.Empty;
using (var sr = new StreamReader(resp.GetResponseStream()))
{
respString = sr.ReadToEnd();
}
var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString);//error here
InvalidCastException:无法将类型为'Newtonsoft.Json.Linq.JObject'的对象强制转换为'ServiceModels.ResponseWithFile
我确定这是因为IFormFile对象。 我究竟做错了什么?
尝试这个:
var serResp = JsonConvert.DeserializeObject<ResponseWithFile>(respString);
要么
var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString, typeof(ResponseWithFile));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.