F# 将电子邮件附件转换为base64
我想从电子邮件中获取附件并将其转换为base64字符串,以便将其存储为JSON 在C#中,我将以F# 将电子邮件附件转换为base64,f#,stream,base64,bytearray,c#-to-f#,F#,Stream,Base64,Bytearray,C# To F#,我想从电子邮件中获取附件并将其转换为base64字符串,以便将其存储为JSON 在C#中,我将以System.IO.Stream的形式获取附件,将其读入字节数组,然后使用Convert.ToBase64String 不过,在F#中,我不确定如何实现这一点(我是一个初学者),而且感觉可能有一种更实用的方法来做事情……?F#将功能性风格与面向对象风格相结合,因此您可以轻松地从F#调用.NET库。有时,有些特定于F#的库为某些任务(如列表处理)提供了更具功能性的样式,但我认为base64编码和流没有类
System.IO.Stream
的形式获取附件,将其读入字节数组,然后使用Convert.ToBase64String
不过,在F#中,我不确定如何实现这一点(我是一个初学者),而且感觉可能有一种更实用的方法来做事情……?F#将功能性风格与面向对象风格相结合,因此您可以轻松地从F#调用.NET库。有时,有些特定于F#的库为某些任务(如列表处理)提供了更具功能性的样式,但我认为base64编码和流没有类似的功能
因此,给定一个流,您可以将其读入缓冲区,然后使用.NET类型转换为base64,如下所示:
open System
open System.IO
let stream = // Some stream, for example: new MemoryStream([| 1uy; 2uy; 3uy; 4uy |])
let buffer = Array.zeroCreate (int stream.Length)
stream.Read(buffer, 0, buffer.Length)
Convert.ToBase64String(buffer)
电子邮件附件通常已经在邮件内部的base64中编码。请参阅,以便我可以检查附件是否为base64并按原样使用,这很酷,但如果不是,我仍然需要帮助。非常感谢。Array.zeroCreate是我要找的。此外,我认为我对在F#中使用OO风格有一些偏见,而事实上我应该接受它。