में एक्सएमएल डिसेरियलाइजेशन मेरे पास एमएस एक्सेस डेटाबेस में वीबीए कक्षाओं का एक सेट है। मेरे पास डेटा के साथ एक एक्सएमएल स्ट्रिंग है जिसके साथ मैं नई कक्षाएं बनाना चाहता हूं।वीबी/वीबीए
व्यक्तिगत रूप से प्रत्येक संपत्ति को सेट करने के अलावा, क्या मेरे ऑब्जेक्ट में XML को deserialize करने का एक आसान तरीका है?
मैं TypeLib पुस्तकालय
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
का उपयोग कर कोड को देखा है लेकिन इस मानक वर्ग मॉड्यूल के साथ काम करने के लिए प्रतीत नहीं होता। मुझे 42 9 त्रुटि मिलती है:
ActiveX Component Cannot Be Created
क्या कोई और मेरी मदद कर सकता है? अगर मैं इसकी मदद कर सकता हूं तो मुझे प्रत्येक प्रस्ताव को हाथ से सेट नहीं करना पड़ेगा, इनमें से कुछ कक्षाएं बहुत बड़ी हैं!
किसी एक्सेस डेटाबेस में निजी कक्षाएं किसी भी सार्वजनिक प्रकार की लाइब्रेरी में शामिल नहीं हैं, इसलिए मुझे नहीं लगता कि यह कभी भी काम करने जा रहा है, यहां तक कि आपके द्वारा सुझाए गए टाइपो के साथ भी। मुझे नहीं लगता कि 'InterfaceInfoFromObject (Me)' सफल हो सकता है क्योंकि 'Me' के लिए प्रासंगिक इंटरफेस सार्वजनिक नहीं हैं। – MarkJ
InterfaceInfoFromObject IDispatch :: GetTypeInfo() के माध्यम से काम करता है जो मेरे लिए एक्सेस में काम करता है .. कैसे .. कौन जानता है? –
धन्यवाद एलेक्स। यह अभी भी काम नहीं कर रहा है, यह पर असफल रहा है TLI = नया TLIAplication लाइन अब एक ही त्रुटि के साथ सेट करें। मैंने टाइपेलिब संदर्भ का संदर्भ दिया है, (tlbinf32.dll) क्या यह सही है? बेन। – oharab