2010-11-08 3 views
0

Je travaille sur un projet de réseau simple et j'aimerais transférer des objets directement à l'aide d'une connexion TCPListener/Client. Je voudrais éviter le surdébit WCF, et juste avoir un moyen simple de sérialiser l'objet sur le départ, l'envoyer sur le réseau, et enfin le restaurer à l'original à l'autre bout.Sérialisation d'objets et mise en réseau en C#

Merci

Répondre

2

Remoting est hors de faveur maintenant qu'il ya WCF. WCF est hautement optimisé pour la performance et gagnera plus de distance dans la plupart des cas. Voir http://msdn.microsoft.com/en-us/library/bb310550.aspx. Vous ne mentionnez pas si vous vous inquiétez des frais généraux d'exécution ou des frais généraux liés à l'utilisation de la WCF. Cela étant dit, vous pouvez réduire le temps d'exécution en utilisant le transport TCP binaire à la place du protocole HTTP. Cela fonctionne bien, bien que HTTP (SOAP) soit, bien sûr, très populaire maintenant. Votre service peut prendre en charge plusieurs transports (TCP et HTTP) pour bien fonctionner avec les clients .NET (transport TCP) et d'autres clients conformes aux normes (transport HTTP SOAP).

0

Eh bien, si vous avez besoin seulement le comportement sérialisation/désérialisation sans impliquer WCF ou Remoting, il y a une façon d'abondance:

  1. sérialisation standard via SerializableAttribute et BinaryFormatter
  2. XML Serialization
  3. Json.NET
  4. Protocole de Google Tampons via ProtoBuf.NET

Toutes les approches ont des côtés forts et faibles, mais je crois que pour vos besoins n ° 1 sera suffisant. Compact et sans besoin de bibliothèques externes.