Question

(Pour wysiwyg je veux dire que je décider QUEL est écrit et COMMENT C'est écrit, et pas quelqu'un chez Microsoft ou chez Google) (OK ... techniquement je ne décide rien ... quelqu'un qui a programmé il y a quelques années a décidé, et je ne peux que demander à quel point je dois sauter)

Je me sens un peu stupide aujourd'hui, mais j'ai déjà perdu deux heures à la recherche de la solution :-(.

À présent...

J'ai un protocole binaire. Il est basé sur C, donc c'est comme regarder une structure C où l'endienne de la machine est définie (et heureusement, c'est la même chose que la Endianness "locale"), la taille des différents types est définie, l'alignement de la structure des données est défini, La disposition de la structure est définie, les chaînes sont des tableaux fixes de caractères dans un codage connu ... tout est défini! Et tout est très similaire à un C # unsafe struct Lorsque vous utilisez [(LayoutKind.Explicit)] Et vous n'êtes pas très difficile à utiliser fixed Modificateur pour les tableaux. Maintenant, je dois le sérialiser / désérialiser en C # ... J'ai regardé autour de moi mais je n'ai rien pu trouver ... qu'est-ce que j'ai manqué? Avant de demander, je sais BinaryFormatter, mais ce n'est pas assez wysiwyg pour moi ... BinaryFormatter implémente sa langue de formatage. Ouais, je sais BitConverter (Et du fait qu'il n'implémente pas les convertisseurs pour Big-Endien), mais ce n'est pas une solution "complète". Ce n'est que l'instrument "de base". Et je connais BinaryWriter/BinaryReader, mais ils ne semblent pas soutenir des tableaux qui ne sont pas byte[] ou char[] Et ils ne semblent pas être capables de "remplir" un tableau sur l'écriture (vous avez 5 éléments byte[] Array et vous devez l'écrire sous forme de 10 éléments byte[] tableau parce que le format que vous utilisez l'exige ... vous devez écrire des lignes de code pour ce faire)

Le plan B (mais peut-être même le plan z) est de créer une ombre unsafe struct Pour chaque classe, un IWysiwygSerializable interface avec deux méthodes (Read et Write) et implémenter l'interface dans chaque classe (l'écriture remplirait le unsafe struct Et l'écrivez-le dans le flux de sortie, la lecture ferait le contraire) (ou je pourrais même faire directement des dizaines de BitConverter dans le Read et Write sans utiliser le struct, mais pour les tableaux, c'est un peu plus difficile)

Merci!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top