2010-09-20 3 views
4

J'ai besoin de comprendre comment fonctionne WCF lors de l'envoi d'un message. Est-ce que WCF sérialise tout avant de l'envoyer?WCF: Sérialisation? Diffusion?

Mon autre question est quel sera l'avantage d'utiliser Streaming? Est-il préférable pour les gros messages, disons entre 1 Mo et 2 Mo? Puis-je envoyer un objet complexe sérialisé, puis pouvoir le désérialiser de l'autre côté facilement après le streaming (par objet complexe je veux dire une liste d'images qui peut être dynamique), ou ai-je besoin de le formater avec quelque chose comme XML? Le problème principal ici est que je ne sais pas si lors de l'utilisation du streaming WFC, je dois sérialiser le message avant de l'envoyer ... WFC n'est-il pas censé sérialiser tout avant de l'envoyer?

Je sais que c'est très général, mais j'ai besoin de clarifier ces concepts.

Vive

Répondre

0
  1. Oui, en dehors des cours d'eau.
  2. Le streaming vous permet d'implémenter ce qui serait normalement difficile ou impossible. Par exemple, si vous essayez d'envoyer 500 Mo en utilisant la liaison HTTP, ce serait impossible. Mais en utilisant le streaming, vous obtenez un pointeur vers un flux et vous pouvez lire depuis le flux.
  3. Il semble que vous vous référez à l'approche tamponnée plutôt qu'à la diffusion en continu. Oui, vous pouvez le mettre en mémoire tampon et est préféré pour les messages volumineux.
  4. Oui, vous pouvez diffuser un tampon, puis utiliser votre propre sérialisation pour désérialiser.
  5. En diffusion en continu, vous envoyez un flux et autorisez l'autre côté à le lire, aucune sérialisation n'est requise. Par exemple:

    interface IMyService { Flux GetMyFile (Guid fileId); }

et

class MyService : IMyService 
{ 
    Stream GetMyFile(Guid fileId) 

    { 
     return new FileStream(GetFileNameFromId(fileId), ...);  
    } 

}