相关疑难解决方法(0)

将任何对象转换为byte []

我正在编写一个原型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[]'.
  ...
}
Run Code Online (Sandbox Code Playgroud)

这当然很容易用a来解决

if( state.headerObject is System.String ){...}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我这样做,我需要检查在运行时无法转换为byte []的每种类型的对象.

由于我不知道在运行时无法将每个对象强制转换为byte [],因此这不是一个选项.

如何将任何对象转换为C#.NET 4.0中的字节数组?

.net c# byte object

125
推荐指数
6
解决办法
21万
查看次数

标签 统计

.net ×1

byte ×1

c# ×1

object ×1