Avatar billede spif2001 Nybegynder
17. maj 2006 - 10:08 Der er 4 kommentarer og
1 løsning

Gem en generel struct til fil

Hej

Jeg har lavet følgende metode til at få en struct gemt ned i en binær fil og den virker fint nok:

private bool WriteStructToFile(MyStruct myStruct)
{
    try
    {
        byte[] data = new byte[Marshal.SizeOf(myStruct)];
        IntPtr p = Marshal.AllocHGlobal(Marshal.SizeOf(myStruct));
        Marshal.StructureToPtr(myStruct, p, false);
        Marshal.Copy((IntPtr)p, data, 0, data.Length);
        Marshal.FreeHGlobal(p);
        this.fileStream.Write(data, 0, data.Length);
        this.fileStream.Flush();
        return true;
    }//try
    catch (Exception e)
    {
        return false;
    }//catch
}//WriteSowToFile

men jeg vil gerne lave en generel metode der kan gøre det for alle structs. Dvs ind parameteren MyStruct skal kunne være en hvilkensomhelst struct.

Hvordan gør jeg lige det?
Avatar billede arne_v Ekspert
17. maj 2006 - 13:12 #1
har du prøvet:

private bool WriteStructToFile(object myStruct)

?
Avatar billede arne_v Ekspert
17. maj 2006 - 13:13 #2
eller

private bool WriteStructToFile(ValueType myStruct)

hvia du vil restricte lidt
Avatar billede spif2001 Nybegynder
17. maj 2006 - 13:14 #3
Næ - vender lige tilbage - blev fanget af en brandsluknings opgave.

Skriver igen når jeg har prøvet object - lyder næsten for nemt :)
Avatar billede spif2001 Nybegynder
17. maj 2006 - 13:55 #4
tror sgi det virker - hvor fjollet at jeg ikke har tjekket det...

smid et svar.
Avatar billede arne_v Ekspert
17. maj 2006 - 14:16 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester