Longueur du stream WCF

J’ai le code suivant pour envoyer un stream (fichier) à un client wcf:

public Stream Download( ssortingng path ) { try { FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read); return stream; } catch (Exception ex) { ssortingng error = ex.Message; return null; } } 

Je veux pouvoir obtenir la longueur du stream envoyé du côté du client, mais la classe Stream ne le supporte pas.

Quelle serait la meilleure façon de le faire?

Merci Tony

 [MessageContract] public class SizedStreamMessage { [MessageHeader] public long streamSize; [MessageBody] //Has to be just one MessageBody for streaming to work! public Stream theStream; } 

Et alors:

 [OperationContract] public SizedStreamMessage Download(ssortingng path) { //Fill in streamSize... //Fill in theStream... } 

Il est évident que cela ne fonctionnera que pour les stream dont vous pouvez réellement obtenir la taille côté serveur sans mettre en tampon l’ensemble du stream (FileStream devrait fonctionner car vous pouvez toujours obtenir la longueur du fichier sans le lire réellement).