Class Name Format In .NET

This topic applies to .NET version only 

Db4o uses full class name to distinguish classes within the database file. In .NET full class name has the following format:

Namespace.ClassName, AssemblyName

Effectively that means that the same class definition within different assemblies (applications or libraries) will be recognized as two different classes by db4o. You should keep this in mind in the following cases:

Let's use an example to see what happens in these cases. We will create 2 applications Test1.exe and Test2.exe. Both will have a simplest class definition:

Test1 application will store one object of Test class to the database:

Another application (Test2) will try to read this object from the same database file. To check how  the Test object was actually stored in the database we will use StoredClass API:

From the example we can see that though the class has been stored to the database, it cannot be retrieved from the Test2 application, as the assembly name is different from the original.

In order to make your classes readable from another assembly you should use one of the existing workarounds: