从WCF数据服务返回BSonDocuments

时间:2012-01-05 16:47:38

标签: c# wcf mongodb wcf-data-services odata

我正在使用官方MongoDB C#驱动程序,我正在尝试找到一种方法将BSonDocument反序列化为类。

问题是我希望这是通用的(无需事先手动创建)。 我需要这样做,因为我正在构建一个带有ServiceOperation的WCF数据服务,该服务将返回我的mongo数据库中的文档。返回的文件可以是任何内容,因此它们不一定适合某种类结构。

不幸的是,我不能只返回BSonDocuments列表,因为我的服务抱怨

The type 'MongoDB.Bson.BsonDocument' is not a complex type or an entity type.

你们中间有人遇到过类似的问题吗?如果是这样,你推荐什么?

1 个答案:

答案 0 :(得分:1)

您可以将BsonDocument转换为JSON字符串并返回该字符串,然后在接收端将其解析回来。

在服务器上:

var json = document.ToJson();
return json;

在客户端:

var document = BsonSerializer.Deserialize<BsonDocument>(json);