Question

J'ai un grand ensemble de fichiers XML d'un schéma propriétaire. Les fichiers XML définissent un protocole de communication binaire (structure de message).

J'aimerais tirer parti de la technologie des tampons de protocole de Google.

J'utilise le code existant pour charger les fichiers XML dans un modèle d'objet (en mémoire). J'aimerais générer un fichier .proto à partir de ce modèle d'objet.

donc, fondamentalement, ce que je recherche, c’est un code / bibliothèque (en C # / .NET) qui représente le format de fichier .proto en tant que modèle objet et peut enregistrer ce modèle dans un fichier .proto.

J'ai jeté un coup d'oeil aux protobufs dotnet de Jon Skeet, je pense comprendre ce qu'il fait (générer un code c # basé sur des fichiers .proto)

Cependant, je n'ai pas trouvé si je pouvais l'utiliser pour mon projet (il contient probablement le modèle d'objet au format .proto, mais probablement uniquement le code qui peut analyser ce format et ne pas l'écrire)

Était-ce utile?

La solution

protobuf-net (ma version des tampons de protocole dans .NET) prend en charge la primitive pour générer des fichiers proto, mais il ne serait pas difficile de remplir les blancs. Je me suis d'abord concentré sur le moteur principal, puis sur la génération de C # de proto. Ecrire un xslt pour générer un proto à partir du modèle objet ne serait pas très différent. Cela prendrait quelques jours cependant ... (j'ai peu de temps pour le moment).

Si cela peut vous être utile, faites-le-moi savoir.

Pour information, le moteur protobuf-net est compatible avec la plupart des classes XmlSerializer (et DataContractSerializer , et récemment BinaryFormatter ). Le code fonctionne actuellement en tant que XML, nous pouvons probablement le faire fonctionner dans protobuf-net. Aucune garantie, bien sûr ...

Autres conseils

Mon code ne peut que sérialiser et désérialiser en binaire et texte. Cependant, je crois que le projet de Marc Gravell dispose de fonctionnalités XML. En fait, je crois qu’il génère du code C # en se basant sur le chargement de la version binaire d’un fichier .proto (lui-même codé en tant que protobuf), son écriture au format XML, puis l’application de XSLT à ce fichier ...

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