将电子邮件附件转换为base64

时间:2012-11-04 15:11:04

标签: f# stream base64 bytearray c#-to-f#

我想从电子邮件中获取附件并将​​其转换为base64字符串,以便我可以将其存储为JSON。

在C#中,我会将附件作为System.IO.Stream,将其读入字节数组,然后使用Convert.ToBase64String

在F#中,我不知道怎么做(我是初学者),感觉可能有更多功能性的做事方式......?

1 个答案:

答案 0 :(得分:1)

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)