Instanz in Byte-Array umwandeln



  • Wie wandelt man eine Instanz (egal welcher Typ) in ein Byte-Array und wie kann ich das wieder rückgängig machen?

    Zum Beispiel um eine Color-, Int64-, String-, Stream- oder ...-Instanz in ein Stream zu laden oder um einfach die einzelnen Bytewerte zu modifizieren

    Danke schon mal… bin echt verzweifelt 😞

    Eine Lösung in dieser Art wäre echt super!

    public Byte[] GetBytes(Object o)
    {
        ...
    }
    
    public Object GetObject(Byte[] b, Type t)
    {
        ...
    }
    


  • Serialisiere es in einen MemoryStream, diesen kannst Du anschließend mit ToArray in ein byte Array wandeln.



  • Das klingt ersmal nicht schlecht!
    Aber wie bekomm ich denn zum Beispiel meine Color Instanz in den Stream? (es sollen alle Klassen verwendbar sein die von Object abgeleitet sind ;)... also wirklich alles)

    PS: Sie müssen dann auch wieder aus dem Stream geladen werden können



  • Color clr = Color.Red;
    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    formatter.Serialize(ms, clr);
    byte[] bytes = ms.ToArray();
    Color newOldColor = (Color)formatter.Deserialize(new MemoryStream(bytes));
    


  • Super Super Super 😮

    Das hab ich gesucht... DANKE 👍



  • Ja jetzt funktioniert alles!!! :p

    ... noch mals danke 🙂


Log in to reply