Fejlmeldingen "not marked as serializable" kommer sansynligvis fordi du ikke har sat attributten ind over klassen. Du skriver bare nedenstående : [Serializable()]
Men kan du ikke forklare lidt nærmere hvad det præcis er du ønsker at gemme - jeg er ikke helt med på den med at gemme en usercontrol.
Hej Har selv rodet med samme problem, dog ikke en usercontrol men en System.Control og fandt ikke en løsning til direkte at serialisere objekter af typen windows.forms. Så var nød til at gøre det ad andre omveje.
Arne og snepnet [Serializable()] og [Serializable] virker fint med alle andre klasser jeg har forsøgt med, med undtagelse af min usercontrol.
grantgreen du løste det bare manuelt istedet (altså ved at dele det op i dele osv)?
snepnet, det er fordi jeg i min main form, har et tabsheet hvor jeg loader disse udercontrols (der er til tegning og manipulering af diverse elementer) Dvs der er en hel liste picture boxe, samt en samling dataelementer til hver usercontrol. Det ville være så meget nemmere for mig, hvis jeg bare kunne gemme hele usercontrol listen binært og smide dem ind end jeg skal sidde og opbygge en ny usercontrol (tegnebræt) med infoen fra datalaget, som jeg godt kan få til at serialize.
Jeg tror det er ligemeget om du skriver det med eller uden ()... Du får default-constructoren under alle omstændigheder, men det skal være et stort "S".
"Because a Windows Form holds handles to unmanaged OS Windows, you can't perform serialization with the [Serializable] attribute. Instead, you should look at the ISerializable interface....."
Nu har du aldrig skrevet hvad det præcis er du har behov for at gemme, så jeg er stadig lidt i tvivl, men jeg kan heller ikke rigtig forestille mig andet end at du kommer til at skrive noget omkring det selv. Det er jo bare et spørgsmål om mængden :o)
Attributten skal så vidt jeg ved være angivet selvom du selv implementerer ISerializable selv.
Hehe :o) - det tror jeg godt vi kunne få nogle linier til at gå med, men jeg synes ikke det hører til her. Du kan jo oprette en 0-pointsag - så kan vi vende den der hvis du har lyst.
Dette her er egentlig bare for forståelsen skyld, da vi jo har fastslået at man ikke kan serialize forms. Men hvordan gør gør man det rent praktisk hvis man skal nedarve interfacet? Hvis jeg har klasse erklæringen noget alla public class myUserControl : System.Windows.Forms.UserControl
Hvordan ville man så inkludere ISerializable interfacet, alle de eksempler jeg har set er det med public class myclass : ISerializable, men hvordan får man fra flere?
Men i skal ihvertfald have tak for hjælpen og I må meget gerne begge lægge et svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.