Deserializarea unei clase definite într-un plugin

În procesul meu încarc pluginuri din care obtin obiectele pe care le folosesc in restul procesului Această clasă moștenește de la MyInterface , astfel încât serializarea nu este o afacere mare Am implementat doar o metodă virtuală const nesemnată char * Serialize() în ea. Ceea ce nu-mi dau seama este cum o pot deserializa, deoarece metoda de deserializare ar trebui să fie statică, nu pot face același lucru. Trebuie să expun o metodă Deserialization din pluginul DLL sau există o modalitate mai bună de a face acest lucru?

0
Afișați un cod și un context real. Acest lucru nu poate fi rezolvat în forma sa actuală.
adăugat autor AJG85, sursa

1 răspunsuri

Indiferent dacă doriți sau nu să expuneți funcția Deserialize în exportul DLL-ului dvs., depinde de designul aplicației dvs. Dacă aveți nevoie de clienți pentru a apela funcția Deserialize , atunci trebuie să fie expusă.

În ceea ce privește modul în care funcționează, Deserialize trebuie să aibă aceeași arhitectură de bază ca și Metoda de fabricare . Datele serializate trebuie să indice ce tip de obiect îl reprezintă, pe lângă toate bunele din obiect. În caz contrar, cel care sună Deserialize trebuie să știe ce fel de obiect urmează să fie deserializat, dar se pare că acest lucru nu este posibil sau de dorit în scenariul dvs. Dacă stocați tipul obiectului ca parte a datelor serializate, puteți să-l comutați pe pe Deserialize și să construiți tipul corect de obiect.

0
adăugat
ok, dar dacă altcineva scrie pluginul, nu am nici o idee despre ce este în interiorul obiectului pe care mi-l trimite.
adăugat autor Idov, sursa