Hi, bin etwas weiter gekommen.
Da ich für meinen Logger daten per XML erhalte und ich unter umständen nicht alle daten eines Objectes Loggen möchte haben ich mir eine Loggings Maske = XMLDocument gemacht welche die zu Loggenden properties beinhaltet. So weit so super

Ich hab mir nun gedacht anstelle eines wilden property arrays hänge ich einfach an jeden zu loggenden Knoten einen "XMLLogKnoten" an welcher eine Liste beinhaltet in der dann die daten des jeweiligen propertys gespeichert werden. OK ungewöhnlich aber nicht schlecht
SO das Problem sieht jetzt wie folgt aus:
Ich haben eine Klasse TXMLElement welche von TXMLNode abgeleitet ist. Von dieser XMLElement hab ich jetzt mal mein LoggNode abgeleitet. also:
TXMLNode
|
TXMLElement
|
TXMLLoggingNode
so das TXMLElement hat folgende Methode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function TXMLElement.NewChild(AClass: TXMLElementClass; AIndex: Integer = -1; ANameSpaceURI: String = ''): TXMLElement; var AChild: IXMLElement; begin AChild := AddChild(AClass.GetTagName, ANameSpaceURI, AClass, AIndex) as IXMLElement; AChild.Init; Result := TXMLElement(AChild.AsXMLNode); end;
function TXMLElement.AddChild(const TagName, NamespaceURI: DOMString; NodeClass: TXMLNodeClass; Index: Integer): IXMLNode; begin Result := inherited AddChild(TagName, NamespaceURI, NodeClass, Index); end; |
dieser übergebe ich meinen Logger :
Delphi-Quelltext
1: 2:
| aXMLDocNode.NewChild('LogNode',TXMLLoggingNode,aXMLDocNode.ChildNodes.Count,'') |
aber !!!! der Konstruktor meines TXMLLoggingNode wird nicht aufgerufen!! Dieser wird in TXMLNode implementiert und ich überlade ihn dann in meiner TXMLLoggingNode. Hab ein ShowMessage eingebaut um zu überprüfen ob das teil aufgerufen wird aber es tut sich nichts
Wenn mir einer nen schlauen rat geben kann wäre ich dankbar !!!
Moderiert von
tommie-lie: Code- durch Delphi-Tags ersetzt.