Ich schreibe einen Prototyp einer TCP-Verbindung und habe Probleme beim Homogenisieren der zu sendenden Daten.
Im Moment sende ich nur Zeichenfolgen, aber in Zukunft möchten wir in der Lage sein, jedes Objekt zu senden.
Der Code ist im Moment recht einfach, da ich dachte, alles könnte in ein Byte-Array umgewandelt werden:
void SendData(object headerObject, object bodyObject)
{
byte[] header = (byte[])headerObject; //strings at runtime,
byte[] body = (byte[])bodyObject; //invalid cast exception
// Unable to cast object of type 'System.String' to type 'System.Byte[]'.
...
}
Dies ist natürlich leicht genug mit einem zu lösen
if( state.headerObject is System.String ){...}
Das Problem ist, wenn ich es so mache, muss ich nach JEDEM Objekttyp suchen, der zur Laufzeit nicht in ein Byte [] umgewandelt werden kann.
Da ich nicht jedes Objekt kenne, das zur Laufzeit nicht in ein Byte [] umgewandelt werden kann, ist dies wirklich keine Option.
Wie konvertiert man ein Objekt überhaupt in ein Byte-Array in C # .NET 4.0?
FileStream
oder ein Objekt, das ein solches Handle kapselt).