Equivalent en C# pour sérialiser une structure. (Envoi par le réseau) - C#/.NET managed - Programmation
Marsh Posté le 29-12-2008 à 12:10:21
implémente ISerializable, surtout si tu veux qu'il serialise les membres privés.
La serialisation standard ne serialise pas les membres privés, uniquement les membres public.
Marsh Posté le 29-12-2008 à 17:46:20
Je n'ai pas testé, mais avec ISerializable, j'ai l'impression que l'on "tag" les données et que ces tags sont placé dans le résultat binaire, je n'ai pas testé mais les quelques exemples de ISerializable que j'ai vu avaient l'air de faire ça.
Code :
|
Ce qui me tracasse, c'est que ces fonction me donne l'impression d'ajouter des "tags" aux données en binaires. (Puisqu'on les récupères avec GetString).
Ce que je veux c'est exactement le même comportement qu'une struct en C. (En fait, je doit envoyer les données à un soft écrit en C).
Cordialement,
Willits
Marsh Posté le 29-12-2008 à 18:13:44
le problème, c'est que la façon de serialiser en C dépend parfois d'un compilateur à un autre, et parfois d'une version à l'autre, cela peut être différent.
Honnêtement, je pense pas que tu arriveras à faire communiquer la serialization des deux languages.
Pour interopérer entre les languages, il existe des moyens beaucoup plus sûre et simple pour le faire.
Comme tu passes par le réseau, démerde toi pour faire communiquer les deux languages entre eux en passant par la couche TCP.
Tu as la mains des deux cotés, tu devrais pouvoir t'en sortir.
sinon essaye éventuellement de rédéfinir la même structure en .NET, et essaye de voir si le casting passe à la récupération de la trame réseau.
Marsh Posté le 29-12-2008 à 11:16:44
Bonjour à tous,
En C, il est possible d'obtenir les données bruts d'une struct et de les envoyer par le réseau, puis de faire un petit cast pour re-obtennir nos données structuré.
Je voudrai savoir si en C# c'est faisable aussi simplement ?
J'explique ce que je veux faire:
- J'ai un objet complexe qui contient une trame réseau et qui remplie une PropertyGrid (Permet de faire une trame "custom" ).
- Je voudrai sérialiser les propriétés privé de l'objet (par les enums, les arguments, les get/set innutiles utilisé pour la propertyGrid) et l'envoyer sur le réseau.
- La trame réseau reçu par le serveur serait désérialisé, puis remplirai une jolie PropertyGrid avec ce que le client à envoyé.
Je vous remercie.
Willits