Estoy escribiendo un prototipo de conexión TCP y tengo problemas para homogeneizar los datos que se enviarán.
Por el momento, no estoy enviando nada más que cadenas, pero en el futuro queremos poder enviar cualquier objeto.
El código es bastante simple en este momento, porque pensé que todo podría convertirse en una matriz de bytes:
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[]'.
...
}
Por supuesto, esto se resuelve fácilmente con un
if( state.headerObject is System.String ){...}
El problema es que, si lo hago de esa manera, necesito verificar CADA tipo de objeto que no se pueda convertir a un byte [] en tiempo de ejecución.
Como no conozco todos los objetos que no se pueden convertir en un byte [] en tiempo de ejecución, esto realmente no es una opción.
¿Cómo se convierte un objeto en una matriz de bytes en C # .NET 4.0?
FileStream
o cualquier objeto que encapsule un identificador como ese).