XML Serializer und Zugriff in Objekthierarchie

23/07/2008 - 18:14 von Holger Kreissl | Report spam
Liebe NG,

ich benutze den .NET gebotenen XML (De)Serializer um eine XML Datei in
ein Objektmodell zu transformieren und zurück.

Nun ist das richtig Klasse. Eine Sache wàre aber sehr interessant und
hilfreich, und dazu erbitte ich einige Ratschlàge. Hier ein
vereinfachtes Beispielszenario:

Class ObjektA
Private _objektB As New ObjektB
<XmlElement("ObjektB")> Public Property Input() As ObjektB
Get
Return _objektB
End Get
Set(ByVal value As ProzessData)
_objektB = value
End Set
End Property
End Class

ObjektB ist wiederrum eine Klasse mit weiteren unterobjekten und
listen... Das tolle ist nun man kann nachdem man das XML deserialisiert
hat einfach über das Grundobjekt zugreifen.

ObjektA.ObjektB

Bei einem komplexen Objekt wàre folgendes sehr schön. Das ist nun die
Eigentliche Frage des Postings:

dim obj as ObjektB = ObjektA.ObjektB
MachWildeSachen(obj)

Sub MachWildeSachen(obj as ObjektB)
Dim basis as ObjektA = obj.RefObjektA
'basis.Eigenschaft verwenden
End Sub

Ich hoffe es ist verstàndlich worauf ich hinaus will.. ObjektB wird
verarbeitet und an irgend einem Punkt wird eine Rererenz auf ein
höherliegendes Objekt benötigt, da z.B. hier eine Eigenschaft ausgelesen
werden muss... Prinzipiell ist es natürlich möglich diese Referenzen
alle durchzuschleifen, schöner wàre jedoch die Elemente im Objekt gleich
referenziert zu bekommen, so daß man in jedem Objekt auf die Referenz
zugreifen kann, welche die Aggregation erzeugt hat...

Möglich wàre es dem ObjektB eine Eigenschaft zu geben... Aber die müsste
dann manuell befüllt werden. Eventuell wird das gewünschte Verhalten ja
irgendwie durch das Framework unterstützt oder es ist einfacher möglich..

Private _myReference As ObjektA
<XmlIgnore()> Public Property ObjektARef() As ObjektA
Get
Return _myReference
End Get
Set(ByVal value As ObjektA)
_myReference = value
End Set
End Property


Ich wàre sehr interessiert an ein paar Vorschlàgen.

Eine mögliche Analogie wàre wenn ich mich nicht völlig tàuche z.B.
me.Page aus irgendeinem Control heraus aufgerufen.

Vielen Dank und freundliche Grüße,

Holger
 

Lesen sie die antworten

#1 Martin Honnen
23/07/2008 - 18:24 | Warnen spam
Holger Kreissl wrote:

Bei einem komplexen Objekt wàre folgendes sehr schön. Das ist nun die
Eigentliche Frage des Postings:

dim obj as ObjektB = ObjektA.ObjektB
MachWildeSachen(obj)

Sub MachWildeSachen(obj as ObjektB)
Dim basis as ObjektA = obj.RefObjektA
'basis.Eigenschaft verwenden
End Sub

Ich hoffe es ist verstàndlich worauf ich hinaus will.. ObjektB wird
verarbeitet und an irgend einem Punkt wird eine Rererenz auf ein
höherliegendes Objekt benötigt, da z.B. hier eine Eigenschaft ausgelesen
werden muss...



Du wirst in deiner ObjektB-Klasse eine Eigenschaft definieren müssen,
die auf das gewünschte ObjektA verweist. Oder du musst halt die Prozedur
so definieren und aufrufen, dass das ObjektA übergeben wird, dann kannst
du, wo nötig, auf das ObjectB zugreifen.




Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen