Zitat von
Jürgen Thomas:
Die Deklaration der Alias-Klasse und auch von TypeAlias habe ich (noch) nicht gefunden.
Der Reflector liefert dir eigentlich alles auf dem Präsentiertellerchen, weswegen ich meine Code auch in 10 Sekunden korrigieren konnte:
com.db4o.Db4o Erweitern -> Configure(), Klick auf Parameter ->
com.db4o.config.Configuration, Erweitern -> AddAlias, Klick auf Parameter ->
com.db4o.config.Alias, Erweitern -> Derived Types ->
com.db4o.config.TypeAlias
Zitat:
PS. Den Hinweis von Khabarakh verstehe ich nicht, oder ich würde es anders empfehlen. Eigene Initialisierungen - also auch die Config-Maßnahmen - können in den Konstruktor gelegt werden, aber nach InitializeComponents().
Bisher war ich mir in diesem Thread nicht so sicher, aber bei diesem Thema hat mir mein "Objektorientierungssinn" (he, das muss ich mir merken ^^ ) eigentlich vollkommen zugestimmt.
Fassen wir einmal zusammen:
a) Wir rufen die Methode einer statischen Klasse auf.
b) Wir übergeben nur konstante Parameter.
c) Aus a) und b) folgt, dass die Instanz der Form für den Aufruf unwichtig ist.
d) Aus a) und b) können wir außerdem zusammen mit der etwaigen Kenntnis des Sinnes der Methode folgern, dass wir die Methode zu einer beliebigen Zeit in beliebigem Kontext aufrufen können.
e) Aus dem Sinn ergibt sich außerdem zusammen mit b), dass wir die Methode genau einmal im gesamten Verlauf der aktuellen AppDomain aufrufen sollten.
f) Und da der Aufruf wohl nicht zum Spaß allein existiert, sollten wir ihn vor der Methode von Form1 durchführen, die den Alias benötigt. Wie aber in d) gesagt ist die genaue Zeit, wann nun "davor" ist, irrelevant.
Daraus, besonders e), folgt für mich, dass das Ganze nur in einem statischen Konstruktor oder einem Singleton stattfinden kann. Und laut f) sollte es uns auch nicht stören, wenn dieser schon ein paar Schritte vor dem Instanzen-Konstruktor aufgerufen, was bei einem Singleton mit lazy Initialization nicht der Fall wäre.