tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
334
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Snowcrack Snowcrack ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Beiträge
    29
    Hallo,
    weiß jemand wie man objekte die nicht serializierbar (also nicht als [Serializable()] gekennzeichnet) sind in einen ByteArray umwandelt? Im diesem Fall eine DataRow.

    Danke,
    Grüße Snowcrack
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Snowcrack Snowcrack ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Beiträge
    29
    Danke für die schnelle Antwort.
    Leider geht das in meinem Fall auch nicht, da die Objekte für diese Methode auch serialisierbar sein müssen.

    Hat noch jemand eine Idee
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    das kannst du über einen MemoryStream machen...:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
     
    namespace De.Tutorials.Training
    {
        public class ObjectToByteArrayExample
        {
            public static void Main(string[] args)
            {
                KeyValue<string, string> keyValue = new KeyValue<string, string>("Foo","Bar");
                Console.WriteLine(keyValue + " " + keyValue.GetHashCode());
     
                byte[] data = ToByteArray(keyValue);
     
                object o = ToObject(data);
     
                keyValue = (KeyValue<string, string>)o;
     
                Console.WriteLine(keyValue + " " + keyValue.GetHashCode());
            }
     
            private static object ToObject(byte[] data)
            {
                MemoryStream memoryStream = new MemoryStream(data);
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                memoryStream.Position = 0;
                return binaryFormatter.Deserialize(memoryStream);           
            }
     
            private static byte[] ToByteArray(Object o)
            {
                MemoryStream memoryStream = new MemoryStream();
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                binaryFormatter.Serialize(memoryStream, o);
                memoryStream.Position = 0;
                return memoryStream.GetBuffer();            
            }
        }
     
        [Serializable]
        class KeyValue<TKey,TValue>
        {
            public TValue Value
            {
                get { return @value; }
                set { @value = value; }
            }private TValue @value;
     
            public TKey Key
            {
                get { return key; }
                set { key = value; }
            } private TKey key;
     
            public KeyValue(TKey key, TValue value)
            {
                this.key = key;
                this.value = value;
            }
     
            public override string ToString()
            {
                return Key +": " + Value;
            }
        }
    }

    Dazu müssen deine Objekte allerdings Serilizable sein... wenn sie das nicht sind musst du dir da selber was über Reflection bauen. Falls auch XML eine alternative ist würde ich die schnelle XML Serialisierung per XStream empfehlen:
    http://code.google.com/p/xstream-dot-net/

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    Snowcrack Snowcrack ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Beiträge
    29
    Danke...
    Mein Objekt ist eine DataRow. Also nicht Serilizable....

    Ich denke dann muss ich einen anderen Lösungsansatz suchen.

    Gruß Snowcrack
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    http://www.thescripts.com/forum/thread428482.html

    Ein Möglichkeit wäre aber, die Werte in eine ArrayList zu packen und diese zu serialisieren
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  7. #7
    Snowcrack Snowcrack ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Beiträge
    29
    Ja, dass hab ich mir auch schon gedacht...
    Wenn ich keine andere Möglichkeit finde werde ich es so machen.

    Danke
    Gruß
     

Ähnliche Themen

  1. ByteArray to ImageData
    Von MySelV im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.02.10, 10:21
  2. JPG in Bytearray und zurück
    Von Chris1079 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 17.03.08, 13:31
  3. ZipFIle ByteArray
    Von zerix im Forum Java
    Antworten: 5
    Letzter Beitrag: 09.08.07, 09:20
  4. ByteArray wegschreiben
    Von Reen_sc im Forum Java
    Antworten: 0
    Letzter Beitrag: 25.10.06, 15:54
  5. ByteArray in JarFile
    Von kleinis_1 im Forum Java
    Antworten: 0
    Letzter Beitrag: 12.12.05, 11:44