db4o:如何在没有c#中的原始类的情况下从DB检索对象?

时间:2014-03-13 14:43:10

标签: c# db4o

我有一些应用程序创建的db4o文件(我没有源代码),我需要从该文件中获取所有数据。

在我在教程中看到的所有示例中都有用于检索对象的类,但如果我没有这些类,该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以使用LINQPad和我的驱动程序http://www.gamlor.info/wordpress/2011/03/db4o-driver-for-linqpad/

进行尝试

否则,您可以浏览db4o reflection API:

假设你没有上课,只想看一切。这样的事情(不记得确切的API):

IQuery query = container.Query();
IEnumerable allObjects = query.Execute();

foreach(Object item : allObjects){

    GenericObject dbObject = (GenericObject)item; // Note: If db4o finds actuall class, it will be the right class, otherwise GenericObject. You may need to do some checks and casts
    dbObject.GetGenericClass().GetDeclaredFields(); // Find out fields
    object fieldData = dbObject.Get(0); // Get the field at index 0. The GetDeclaredFields() tells you which field is at which index
}