J'utilise le binaryFormatter pour sérialiser les objets à envoyer. Mais comme pour l'ensemble de données ADO.NET, quelle est la meilleure pratique? J'ai remarqué que le formateur binaire est surchargé par xmlformatter en cas de jeu de données? comment réduire la taille & augmenter la vitesse de sérialisation?Comment sérialiser un ensemble de données pour .NET remoting (.NET Framework 3.5 SP1)?
1
A
Répondre
1
Vous pouvez lui dire d'utiliser en mode binaire au lieu du mode XML hérité:
myData.RemotingFormat = SerializationFormat.Binary;
Vous pouvez également essayer d'exécuter le sérialiseur par GZipStream
ou DeflateStream
, mais cela aurait probablement besoin de l'envoyer comme un blob plutôt que l'accès à distance direct.
J'ai aussi fait quelques travaux récents regardant pousser DataTable
par protobuf-net, here, including comparison metrics - même si vous ne voulez pas les réglages de protobuf, les données de chiffres devraient vous aider à choisir entre XML/binaire et la vanille/gzip/dégonfler.
Soit un sujet hors sujet, mais connaissez-vous un moyen d'empêcher le transfert du schéma sur un ensemble de données non typé? – leppie
@leppie - à la conjecture: 'data.SchemaSerializationMode = SchemaSerializationMode.ExcludeSchema;' –
Malheureusement, cela nécessite un jeu de données typé :(Ce que je ne peux pas utiliser dans mon cas (MS Sync framework 1.0) – leppie