C# 如何将FileStream对象序列化为JSON字符串?
我有一个模型用作post方法的参数 我的模型是:C# 如何将FileStream对象序列化为JSON字符串?,c#,json,asp.net-core,type-conversion,filestream,C#,Json,Asp.net Core,Type Conversion,Filestream,我有一个模型用作post方法的参数 我的模型是: public class SendObject { public string Id { get; set; } public string Body { get; set; } public string Subject { get; set; } public SendObjectParameters Parameters { get; set; } public object[] Attachment
public class SendObject
{
public string Id { get; set; }
public string Body { get; set; }
public string Subject { get; set; }
public SendObjectParameters Parameters { get; set; }
public object[] Attachments { get; set; }
}
public class SendObjectParameters
{
public string Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Address { get; set; }
}
我有一个附件要与Attachments=new[]{attachment}
一起发送,我的附件是excel文件,附件类型是FileStreamResult
在post方法中,我尝试序列化这个对象,比如string content=JsonConvert.SerializeObject(sendContent)代码>。关于序列化,我发现了一个错误:Newtonsoft.Json.JsonSerializationException:从'System.IO.MemoryStream'上的'ReadTimeout'获取值时出错。-->System.InvalidOperationException:此流不支持超时。
如何解决此问题?简短回答,您无法将流系列化
为此,您可以考虑将流数据转换为二进制对象:<代码> BLB< <代码> .<
这样就可以在json中将blob保存为字符串
见:
注意:我不建议对任何文件操作使用这种方式。您可以使用流。SerializeObject方法尝试序列化FileStreamResult类型的对象。
我想这很难做到,因为这可能包含许多(本机)依赖项
我建议先将文件流转换为字节数组(使用“.ToArray()”-Method),或者最好直接将其转换为BASE64字符串,这样您就可以确定具体序列化的是什么。为什么要将其序列化为JSON?它有多大?