Я пытаюсь создать потоковую службу WCF. У меня есть два требования, которые я, кажется, спотыкаюсь, пытаясь заставить это работать:
- Длина потока
- Входные параметры
Мой контракт на сообщение выглядит так:
[MessageContract]
public class MyStream
{
[MessageHeader]
public long StreamSize;
[MessageBodyMember]
public Stream StreamData;
}
Мой рабочий контракт выглядит так:
[ServiceContract]
public interface IStreamService
{
[OperationContract]
MyStream GetData(string data);
}
Я получаю сообщение об ошибке при попытке использовать веб-сервис:
Операция 'GetData' не может быть
загружен, потому что у него есть параметр или
тип возвращаемого типа
System.ServiceModel.Channels.Message
или тип, который имеет
MessageContractAttribute и другие
параметры разных типов. когда
с помощью
System.ServiceModel.Channels.Message
или типы с
MessageContractAttribute, метод
не должны использовать какие-либо другие типы
параметры.
Исходя из моего понимания этого поста , мне нужно использовать контракт сообщений, чтобы получить длину моего потока, но когда я переключаюсь с контракта данных на контракт сообщений, мне больше не разрешают проходить во входных параметрах.
Есть ли изменения в конфигурации, которые мне не хватает? Или что-то еще я могу попробовать? Спасибо!