Saya sedang menulis koneksi TCP prototipe dan saya mengalami beberapa kesulitan menyeragamkan data yang akan dikirim.
Saat ini, saya tidak mengirim apa pun kecuali string, tetapi di masa depan kami ingin dapat mengirim objek apa pun.
Kode ini cukup sederhana saat ini, karena saya pikir semuanya dapat dilemparkan ke dalam array byte:
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[]'.
...
}
Ini tentu saja cukup mudah diselesaikan dengan
if( state.headerObject is System.String ){...}
Masalahnya adalah, jika saya melakukannya dengan cara itu, saya perlu memeriksa SETIAP jenis objek yang tidak dapat dilemparkan ke byte [] saat runtime.
Karena saya tidak tahu setiap objek yang tidak dapat dilemparkan ke byte [] pada saat runtime, ini sebenarnya bukan pilihan.
Bagaimana cara mengubah objek apa pun menjadi array byte di C # .NET 4.0?
FileStream
, atau objek apa pun yang merangkum pegangan seperti itu).