首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB动态注册类类型

MongoDB动态注册类类型
EN

Stack Overflow用户
提问于 2015-01-09 10:25:40
回答 1查看 1.9K关注 0票数 3

在MongoDB中,我需要动态地注册类映射,而不需要自己注册所有当前和未来的类。

有一种方法叫做

代码语言:javascript
复制
BsonClassMap.RegisterClassMap<T> 

但是有了这个,我需要知道类(T),不能用Type代替。

我想遍历像这样的程序集类型来注册类映射:

代码语言:javascript
复制
var assemblyTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes()).Where(t => t.IsClass);
        foreach (var type in assemblyTypes)
        {
            //Register classmap for type
        }

有办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 10:25:40

我终于找到了解决这个问题的办法。只是为了其他有同样问题的人。

我检查了mongodb#-驱动程序源代码,以确定是否有另一种方法可以动态注册类型。

该方法

代码语言:javascript
复制
BsonClassMap.LookupClassMap(type);

将检查所提供的类型是否已注册。如果没有,它也会注册它并调用AutoMap()。

为了确保类没有在其他地方注册,您应该像这样使用它:

代码语言:javascript
复制
if (BsonClassMap.IsClassMapRegistered(type))
  return;

//will check if the type is registered. if not it will be automatically registered.
//AutoMap will also called automatically.
BsonClassMap.LookupClassMap(type);
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27858496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档