为了账号安全,请及时绑定邮箱和手机立即绑定

C# 如何反序列化IFormFile

C# 如何反序列化IFormFile

C#
茅侃侃 2023-07-09 15:16:45
我确信有人遇到了同样的问题,但我没有找到任何东西。我发送发布请求来获取文件,并得到此模型作为响应:    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 hereInvalidCastException:无法将“Newtonsoft.Json.Linq.JObject”类型的对象转换为“ServiceModels.ResponseWithFile”类型我确定这是因为 IFormFile 对象。我究竟做错了什么?
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

尝试这个:

var serResp = JsonConvert.DeserializeObject<ResponseWithFile>(respString);

或者

  var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString, typeof(ResponseWithFile));



查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信