最佳答案
我正在编写一个原型 TCP 连接,我有一些麻烦同质化数据发送。
目前,我只发送字符串,但在未来,我们希望能够发送任何对象。
目前代码非常简单,因为我认为所有的代码都可以转换为字节数组:
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[]'.
...
}
当然,使用
if( state.headerObject is System.String ){...}
问题是,如果我这样做,我需要检查每一种类型的对象,不能在运行时强制转换为字节[]。
因为我不知道在运行时不能强制转换成 byte []的每个对象,所以这真的不是一个选项。
在 C # . NET 4.0中,如何将任何对象转换为字节数组?