繁体   English   中英

如何从流创建BsonDocument(C#)

[英]How to create a BsonDocument from stream (c#)

我想将从服务器读取的电子邮件插入到MongoDB。 我使用MimeKit从服务器获取电子邮件。 尝试直接将其插入mimeMessage.ToBsonDocument()我得到System.InvalidOperationException: 'Timeouts are not supported on this stream.' 所以我猜想消息对象使用内部流从服务器读取数据。

我现在想使用内存流首先将数据写入流,然后从该流创建BsonDocument。

在这里阅读到最好的方法是使用BsonDocument.ReadFrom(ms); 但是编译器在BsonDocument中找不到方法“ ReadFrom”。

在较新的版本中是否替换了此方法? 什么? 或从流创建BsonDocument的最佳方法是什么?

谢谢

根据http://api.mongodb.com/csharp/2.0/html/Methods_T_MongoDB_Bson_BsonDocument.htm上的文档,似乎您需要将流转换为字符串,然后使用Parse()方法:

string bsonText;
using (var reader = new StreamReader (ms))
    bsonText = reader.ReadToEnd ();

var bsonDocument = BsonDocument.Parse (bsonText);

就是说,我认为您不能只将MimeMessage写入流,然后期望将其解析为BsonDocument 当您将MimeMessage写入流时,它将采用MIME格式,而不是BSON格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM