Re: Syntaxprobleme mit einer Methode
Also das von Khabarakh funktioniert bei mir... Vieleicht liegts daran, wo du das ganze aufrufts? :gruebel:
|
Re: Syntaxprobleme mit einer Methode
Achso, jetzt ist die Erleuchtung gekommen ;) . Zwar lässt sich zum Initialisieren von Feldern Code wie "(static) double foo = Math.Sqrt(3);" direkt in den Klassenrumpf packen, alles andere muss aber schön in Methoden verpackt sein, so unübersichtlich ist C# nun auch wieder nicht :zwinker: . D.h., alle anderen Initialisierungen schiebst du in einen Konstruktor der Klasse (dort landen die Feldinitialisierungen letzten Endes ebenfalls), hier wohl am Ehesten der statische.
Code:
static Form1()
{ Db4o.Configure().AddAlias(new TypeAlias("Demo_db4o.Person","Demo_db4o.Person, Demo_db4o")); } |
Re: Syntaxprobleme mit einer Methode
Hallo Luckie,
ich habe mir die DLL mal mit Roeder's Reflector genauer angesehen. Dabei stelle ich fest: Zitat:
Code:
Zu dieser Klasse gibt es folgende Methode:
... Db4o.Configure() ...
Code:
Die Deklaration der Alias-Klasse und auch von TypeAlias habe ich (noch) nicht gefunden. Es spricht aber alles dafür, dass das richtige Verfahren so lautet:
public void AddAlias(Alias alias);
Code:
Vielleicht teilst Du das Verfahren auf, um im Debugger Details zu sehen:
Db4o.Configure().AddAlias(new Alias(...));
Code:
Viel Erfolg! Jürgen
Config4Impl cfg;
cfg = Db4o.Configure(); Alias xxx = new TypeAlias(...); cfg.AddAlias(xxx); 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(). |
Re: Syntaxprobleme mit einer Methode
Zitat:
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:
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. |
Re: Syntaxprobleme mit einer Methode
Zitat:
Das war's. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz