我在MongoDB字段中存储了一个二进制数组。我试图使用C#驱动程序从字段中获取二进制数组,并使用BsonDocument保持类型的通用性,所以我不需要声明一个类。我正在使用BsonDocument一般地对待这些类型,并检查获取的BsonValue是否显示二进制数组: {{“ _t”:“ System.Byte []”,“ _v”:new BinData(...)}}
我无法正确将结果BsonValue强制转换为C#byte []类型。如果我尝试使用AsByteArray,则会收到消息“无法将类型为MongoDB.Bson.BsonDocument的对象转换为类型为MongoDB.Bson.BsonBinaryData的消息。”
在线寻找有人建议使用ToBson(),并且当我得到有效的byte []时,它似乎并不是我想要的。在解密中无效(我在加密后存储一个byte [])。我怀疑这是因为字节数组的元数据也正在使用ToBson()进行序列化。
我究竟如何将Mongo字节数组提取到C#字节[]中?我要解决这个错误吗?
我正在尝试做这样的事情:
// result is BsonDocument:
BsonValue value = result["FieldName"];
if (value != null && value != BsonNull.Value)
{
byte[] arr = value.ToBson();
}