如何从db4o数据库中检索在动态程序集中键入的对象?

时间:2011-02-27 11:21:35

标签: c# database db4o

在我的实验中,我保存了一些发射类型的对象,这些对象在入口程序集中包含一个类型,如下所示:


///normal assembly
public class Person{ public string Name; public int Age;}

///dynamic assembly "dynAsm"
public class Dude: Person{}

Peron tom = (Person)Activator.CreateInstance(dudeType);
tom.Name = "Tom";
tom.Age = 100;
db.Store(tom);

它已成功存储到db文件中。 Cuz我已经使用ObjectManager检查了文件,并看到tom对象实际上在那里。

但是当我使用IObjectContainer和IQuery的查询方法来编程检索保存的对象时,我得不到任何回报。

我试过了:



db.Query(dudeType); //dudeType is from a dynamic assembly with the same name as 
                    //the one used to generate "tom"
//nothing
db.Query(typeof(Person));
//nothing
db.Query(typeof(object));
//still nothing

以同样的方式使用IQuery对象,我也得不到任何东西。

所以,有人请告诉我:为什么我不能这样做?为什么即使基类方法也不起作用?


  

PS:当我将动态程序集保存到文件中,加载它并再次尝试查询时,一切正常。但是如你所知,CLR不允许卸载程序集,因此保存加载的东西不是我想要的东西

0 个答案:

没有答案