Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将FileStream对象序列化为JSON字符串?_C#_Json_Asp.net Core_Type Conversion_Filestream - Fatal编程技术网

C# 如何将FileStream对象序列化为JSON字符串?

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

我有一个模型用作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[] 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?它有多大?