Я не слишком уверен, что это правильный путь, но у меня это сработало.
1) Создание класса объекта передачи данных
[DataContract]
class ZippedDataDTO
{
[DataMember]
public byte[] RawData {get;set;}
//other relevant metadata
}
2) После сжатия данных получить байты из потока, что-то вроде .ToArray()
3) Назначить сжатые сырые байты DTO RawBytes
4) Верните это DTO как часть вашего контракта на обслуживание WCF
[ServiceContract]
interface IService
{
[OperationContract]
ZippedDataDTO GetZippedData();
...
}