Как вернуть поток из службы WCF?

Я играю с сетью protobuf -и WCF. Вот код, который я создал:

public class MobileServiceV2
{
    [WebGet(UriTemplate = "/some-data")]
    [Description("returns test data")]
    public Stream GetSomeData()
    {
        WebOperationContext.Current.OutgoingResponse.ContentType = "application/x-protobuf";

        var ms = new MemoryStream();
        ProtoBuf.Serializer.Serialize(ms, new MyResponse { SomeData = "Test data here" });
        return ms;
    }
}

[DataContract]
public class MyResponse
{
    [DataMember(Order = 1)] 
    public string SomeData { get; set; }
}

Когда я смотрю в Fiddler -, я вижу правильный тип исходящего контента -, и все выглядит хорошо, но я получаю пустой ответ. IE предлагает загрузить файл, а этот файл пуст. Сериализатор не работает? Или я просто не правильно делаю?

РЕДАКТИРОВАТЬ:

Я добавил следующий код в метод, и да, он правильно сериализуется. Что-то не так с тем, как я возвращаю поток из WCF..

using (var file = File.Create("C:\\test.bin"))
        {
            Serializer.Serialize(file, new MyResponse { SomeData = "Test data here" });
        }
5
задан katit 20 July 2012 в 15:29
поделиться