我想从电子邮件中获取附件并将其转换为base64字符串,以便我可以将其存储为JSON。
在C#中,我会以System.IO.Stream
的形式将附件读取,然后将其读取为字节数组,然后使用Convert.ToBase64String
。
在f#中,我不确定如何做这个(我是初学者),感觉可能有一种功能更大的做事方式...?
f#将功能样式与面向对象的样式结合在一起,因此您可以轻松地从f#调用.NET库。有时,有一些特定的库可以为您提供某些任务的功能更具功能性的样式(例如列表处理),但我认为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)