出于单元测试的目的,我想测试我的类映射,而无需读取和写入MongoDB数据库中的文档.为了处理特殊情况,例如循环父/子引用和只读属性,我使用BsoncClassMap.RegisterClassMap< MyType>(...)了一些自定义映射来覆盖默认AutoMap();生成的映射.
有没有人知道如何将BsonDocument转换为所需的强类型对象而不进行数据库往返?当进出数据存储时,驱动程序正在执行此操作.我的目标是使用MongoDB C#驱动程序在内部使用的相同逻辑来测试与C#域对象之间的序列化到BsonDocument.
我能够使用Bson扩展方法ToBsonDocument()将C#对象转换为BsonDocument吗?我缺乏的那一块是与过程相反的 - 基本上是一个BsonDocument.ToObject< MyType>();.
这是官方MongoDB C#驱动程序的最新版本吗?它似乎应该是 - 我想知道我是否只是盲目而且错过了显而易见的事实.
Pet*_*ano 33
MongoDB驱动程序确实提供了一种从Bson反序列化到您的类型的方法.该BsonSerializer可以发现MongoDB.Bson.dll,在MongoDB.Bson.Serialization命名空间.
您可以使用该BsonSerializer.Deserialize<T>()方法.一些示例代码将是
var obj = new MyClass { MyVersion = new Version(1,0,0,0) };
var bsonObject = obj.ToBsonDocument();
var myObj = BsonSerializer.Deserialize<MyClass>(bsonObject);
Console.WriteLine(myObj);
Run Code Online (Sandbox Code Playgroud)
在哪里MyClass定义为
public class MyClass
{
public Version MyVersion {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
32120 次 |
| 最近记录: |