Ich habe eine Reihe von VBA-Klassen in einer MS Access-Datenbank. Ich habe eine XML-Zeichenfolge mit Daten, mit denen ich neue Klassen erstellen möchte.XML-Deserialisierung in VB/VBA
Gibt es neben der individuellen Einstellung jeder Eigenschaft eine einfache Möglichkeit, die XML in mein Objekt zu deserialisieren?
Ich habe den Code mit der TypeLib Bibliothek gesehen
Public Sub ISerializable_Deserialize(xml As IXMLDOMNode)
Dim tTLI As TLIApplication
Dim tInvoke As InvokeKinds
Dim tName As String
Dim tMem As MemberInfo
tInvoke = VbLet
For Each tMem In TLI.ClassInfoFromObject(Me).Members
tName = LCase(tMem.Name)
CallByName Me, tMem.Name, VbLet, xml.Attributes.getNamedItem(tName).Text
Next tMem
End Sub
aber dies scheint nicht mit den Standard-Klassenmodulen zu arbeiten. Ich erhalte einen Fehler 429:
ActiveX Component Cannot Be Created
Kann mir noch jemand helfen? Ich würde lieber nicht jedes Stück von Hand setzen müssen, wenn ich es helfen kann, einige dieser Klassen sind riesig!
Private Klassen in einer Access-Datenbank sind in keiner öffentlichen Typbibliothek enthalten, daher glaube ich nicht, dass dies jemals funktioniert, selbst wenn die Tippfehler wie vorgeschlagen korrigiert wurden. Ich glaube nicht, dass 'InterfaceInfoFromObject (Me)' erfolgreich sein kann, da die relevanten Schnittstellen für 'Me' nicht öffentlich sind. – MarkJ
InterfaceInfoFromObject funktioniert über IDispatch :: GetTypeInfo(), die in Access für mich funktioniert .. wie ... wer weiß? –
Danke Alex. Es funktioniert immer noch nicht, es ist auf der -Linie fehlgeschlagen. Set TLI = Neue TLIApplication Zeile jetzt mit dem gleichen Fehler. Ich habe die typelib-Referenz referenziert, (tlbinf32.dll) ist das die richtige? Ben. – oharab