我正在编写一个原型TCP连接,我在同质化要发送的数据时遇到了一些问题.
目前,我只发送字符串,但在future ,我们希望能够发送任何对象.
目前代码非常简单,因为我认为所有内容都可以转换为字节数组:
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 ){...}
问题是,如果我这样做,我需要判断在运行时无法转换为字节[]的每种类型的对象.
因为我不知道在运行时不能转换成字节[]的每个对象,所以这真的不是一个选项.
在C#中,如何将任何对象转换为字节array.NET 4.0?