Je suis en train d'écrire un prototype de connexion TCP et je vais avoir quelques difficultés à homogénéiser les données à envoyer.
Pour le moment, je suis l'envoi de rien, mais les cordes, mais dans l'avenir, nous voulons être en mesure d'envoyer n'importe quel objet.
Le code est assez simple pour le moment, parce que je pensais que tout ce qui pourrait être jeté dans un tableau d'octets:
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[]'.
...
}
Bien sûr, cela se trouve assez facilement résolu avec un
if( state.headerObject is System.String ){...}
Le problème est que si je le fais de cette façon, j'ai besoin de vérifier, pour CHAQUE type d'objet qui ne peut pas être lancée à un byte[] au moment de l'exécution.
Depuis que je ne connais pas tous les objets qui ne peuvent pas être jeté dans un byte[] au moment de l'exécution, ce n'est vraiment pas une option.
Comment convertir n'importe quel objet dans un tableau d'octets en C# .NET 4.0?