WilldcardAlias allows creating aliases for packages, namespaces or multiple similar classes. WilcardAlias constructor accepts 2 parameters:
* symbol is used to specify the place where multiple matches are allowed (you can use only one * per pattern).
Let's look how to alias all classes within one package/namespace.
01private static void SavePilots(IConfiguration configuration) 02
{ 03
File.Delete(Db4oFileName); 04
IObjectContainer db = Db4oFactory.OpenFile(configuration, Db4oFileName); 05
try 06
{ 07
Pilot pilot = new Pilot("David Barrichello", 99); 08
db.Set(pilot); 09
pilot = new Pilot("Kimi Raikkonen", 100); 10
db.Set(pilot); 11
} 12
finally 13
{ 14
db.Close(); 15
} 16
}
01private static IConfiguration ConfigureAlias() 02
{ 03
// Db4objects.Db4odoc.Aliases.* - namespace for the classes saved in the database 04
// Db4objects.Db4odoc.Aliases.NewAlias.* - runtime namespace 05
WildcardAlias wAlias = new WildcardAlias("Db4objects.Db4odoc.Aliases.*", "Db4objects.Db4odoc.Aliases.NewAlias.*"); 06
// add the alias to the configuration 07
IConfiguration configuration = Db4oFactory.NewConfiguration(); 08
configuration.AddAlias(wAlias); 09
Console.WriteLine("Stored name for Db4objects.Db4odoc.Aliases.NewAlias.Pilot: " + wAlias.ResolveRuntimeName("Db4objects.Db4odoc.Aliases.NewAlias.Pilot")); 10
Console.WriteLine("Runtime name for Db4objects.Db4odoc.Aliases.Pilot: " + wAlias.ResolveStoredName("Db4objects.Db4odoc.Aliases.Pilot")); 11
return configuration; 12
}
01Private Shared Sub SavePilots(ByVal configuration As IConfiguration) 02
File.Delete(Db4oFileName) 03
Dim db As IObjectContainer = Db4oFactory.OpenFile(configuration, Db4oFileName) 04
Try 05
Dim pilot As Pilot = New Pilot("David Barrichello", 99) 06
db.Set(pilot) 07
pilot = New Pilot("Kimi Raikkonen", 100) 08
db.Set(pilot) 09
Finally 10
db.Close() 11
End Try 12
End Sub
1Private Shared Function ConfigureAlias() As IConfiguration 2
Dim wAlias As WildcardAlias = New WildcardAlias("Db4objects.Db4odoc.Aliases.*", "Db4objects.Db4odoc.Aliases.NewAlias.*") 3
' Add the Alias to the configuration 4
Dim configuration As IConfiguration = Db4oFactory.NewConfiguration() 5
configuration.AddAlias(wAlias) 6
Console.WriteLine("Stored name for Db4objects.Db4odoc.Aliases.NewAlias.Pilot: " + wAlias.ResolveRuntimeName("Db4objects.Db4odoc.Aliases.NewAlias.Pilot")) 7
Console.WriteLine("Runtime name for Db4objects.Db4odoc.Aliases.Pilot: " + wAlias.ResolveStoredName("Db4objects.Db4odoc.Aliases.Pilot")) 8
Return configuration 9
End Function
You can check the matches for the concrete classes using resolveRuntimeName and resolveStoredName.
In order to add your own aliasing logic implement Alias interface (for example you may want to use more sophisticated pattern logic). You own resolving logic implementation should reside in resolveRuntimeName and resolveStoredName methods.