Tôi đang viết một kết nối TCP nguyên mẫu và tôi gặp một số khó khăn khi đồng nhất hóa dữ liệu được gửi.
Hiện tại, tôi không gửi gì ngoài chuỗi, nhưng trong tương lai chúng tôi muốn có thể gửi bất kỳ đối tượng nào.
Mã hiện tại khá đơn giản, vì tôi nghĩ mọi thứ có thể được chuyển thành một mảng 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[]'.
...
}
Điều này tất nhiên là đủ dễ dàng giải quyết với một
if( state.headerObject is System.String ){...}
Vấn đề là, nếu tôi làm theo cách đó, tôi cần kiểm tra MỌI loại đối tượng không thể chuyển thành byte [] khi chạy.
Vì tôi không biết mọi đối tượng không thể chuyển thành byte [] khi chạy, đây thực sự không phải là một tùy chọn.
Làm thế nào để chuyển đổi bất kỳ đối tượng nào thành một mảng byte trong C # .NET 4.0?
FileStream
hoặc bất kỳ đối tượng nào đóng gói một tay cầm như thế).