External callbacks should be registered with db4o EventRegistry. Follow the steps below to start using your own event handlers:
c#: IEventRegistry registry =
EventRegistryFactory.ForObjectContainer(container);
VB: Dim registry As IEventRegistry =
EventRegistryFactory.ForObjectContainer(container)
c#: registry.Created += new ObjectEventHandler(OnCreated);
VB: AddHandler registry.Created, AddressOf OnCreated
c#:
private static void OnCreated(object sender, ObjectEventArgs args)
{
// handling code
}
VB:
Private Shared Sub OnCreated(ByVal sender As Object, ByVal args As ObjectEventArgs)
' handling code
End Sub
c#: registry.Created -= new ObjectEventHandler(OnCreated);
VB: RemoveHandler registry.Created, AddressOf OnCreated
EventRegistry features:
For example:
01public static void TestCreated() 02
{ 03
File.Delete(YapFileName); 04
IObjectContainer container = OpenContainer(); 05
try 06
{ 07
IEventRegistry registry = EventRegistryFactory.ForObjectContainer(container); 08
// register an event handler, which will print all the car objects, that have been Created 09
registry.Created += new ObjectEventHandler(OnCreated); 10
11
Car car = new Car("BMW", new Pilot("Rubens Barrichello")); 12
container.Set(car); 13
} 14
finally 15
{ 16
CloseContainer(); 17
} 18
}
01Public Shared Sub TestCreated() 02
File.Delete(YapFileName) 03
Dim container As IObjectContainer = OpenContainer 04
Try 05
Dim registry As IEventRegistry = EventRegistryFactory.ForObjectContainer(container) 06
' register an event handler, which will print all the car objects, that have been Created 07
AddHandler registry.Created, AddressOf OnCreated 08
Dim car As Car = New Car("BMW", New Pilot("Rubens Barrichello")) 09
container.Set(car) 10
Finally 11
CloseContainer() 12
End Try 13
End Sub