Я пишу прототип 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 ){...}
Проблема в том, что если я делаю это так, мне нужно проверить тип КАЖДОГО типа, который нельзя выполнить для байта [] во время выполнения.
Так как я не знаю каждого объекта, который нельзя выполнить в байте [] во время выполнения, это действительно не вариант.
Как преобразовать любой объект вообще в массив байтов в С#.NET 4.0?