Tengo un conjunto de clases de VBA en una base de datos de MS Access. Tengo una cadena xml con datos con los que quiero crear nuevas clases.Deserialización de XML en VB/VBA
Además de configurar cada propiedad individualmente, ¿hay una manera fácil de deserializar el XML en mi objeto?
que he visto el código usando la biblioteca biblioteca de tipos
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
pero esto no parece trabajar con los módulos de clase estándar. Obtengo un error 429:
ActiveX Component Cannot Be Created
¿Alguien más puede ayudarme? Prefiero no tener que configurar cada propiedad a mano si puedo evitarlo, ¡algunas de estas clases son enormes!
Las clases privadas en una base de datos de Access no están incluidas en ninguna biblioteca pública de tipos, así que no creo que esto vaya a funcionar, incluso con los errores tipográficos arreglados como sugirió. No creo que 'InterfaceInfoFromObject (Me)' pueda tener éxito porque las interfaces relevantes para 'Me' no son públicas. – MarkJ
InterfaceInfoFromObject funciona a través de IDispatch :: GetTypeInfo() que funciona en Access para mí ... en cuanto a cómo ... ¿quién sabe? –
Gracias Alex. Todavía no está funcionando, está fallando en el Establecer TLI = Nueva aplicación TLIA línea ahora con el mismo error. Hice referencia a la referencia typelib, (tlbinf32.dll) ¿es esta la correcta? Ben. – oharab