Добавить имя файла и параметр длины в поток WCF, когда Transfermode = Stream - PullRequest
2 голосов
/ 03 февраля 2011

В отличие от всех сообщений SO, в которых говорится об этой теме, меня не интересует обтекание объекта потока в [MessageContract], поскольку это не разрешено в режиме streaming (afaik).

Когда я нахожусь в потоковом режиме, как я могу вернуть клиенту некоторые метаданные, такие как длина и имя файла?Могу ли я добавить заголовок WCF / SOAP?Как мне это сделать?

Я смотрю на расширение класса файлового потока и добавляю атрибут [MessageHeader], но я не могу заставить это работать.

1 Ответ

5 голосов
/ 03 февраля 2011

вот как мы это делаем

     [MessageContract]
    public class StreamMessage
    {
        [MessageHeader(MustUnderstand = true)]
        public long Length { get; set; }
        [MessageHeader(MustUnderstand = true)]
        public int ServerVersion { get; set; }
        [MessageHeader(MustUnderstand = true)]
        public byte[] Cerificate { get; set; }
        [MessageBodyMember(Order = 1)]
        public Stream Stream;
    }
...