При разработке службы WCF я столкнулся с проблемой передачи больших данных в качестве параметров метода (> 4 Мб необработанного размера, не считая накладных расходов на передачу / сообщение).
Решением этой проблемы является использование фрагментов или потоковой передачи, но все образцы, которые я видел, предполагают, что клиент знает об используемом методе и использует доступный размер блока для отправки / получения порций данных, и проблема (для меня) в том, что это невозможно вызвать только один метод, например
SaveData(DataInformation info)
но напишите метод-оболочку, который вместо этого будет повторять что-то вроде
SaveDataChunk(byte[] buffer)
Можно ли сделать это как-то прозрачным для клиента, просто вызвав «SaveData»?
РЕДАКТИРОВАТЬ: Небольшой дополнительный вопрос, хотя он может перейти к отдельному вопросу. Если мы используем потоковую передачу wcf, тогда все ServiceOperations в ServiceContract ДОЛЖНЫ выполнять дополнительные ограничения, такие как `` Операции, которые происходят через потоковый транспорт, могут иметь контракт не более чем с одним входным или выходным параметром '' ?
Если сервису требуется потоковая передача только для части методов, вам нужно переместить его в другой сервисный контракт? Есть ли другой способ справиться с этим?
Спасибо