Я знаю, что название немного сбивает с толку, поэтому вот объяснение:
Я пытаюсь транслировать большой файл с помощью WCF и знаю, как это сделать.
Когда я писал метод, говорите:
[OperationContract]
void sendStream(System.IO.Stream _StreamSource);
Там сгенерированный прокси-класс внутри моего клиентского приложения будет иметь тип System.IO.Stream в качестве входного параметра.
Но если я создам другой класс:
[MessageContract]
[KnownType(typeof(Stream))]
public class MyData
{
[MessageHeader(MustUnderstand = true)]
public string Key { get; set; }
[MessageBodyMember(Order = 1)]
public Stream Data { get; set; }
}
И имеют сервисный интерфейс:
[OperationContract]
void sendStream(MyData _StreamSource);
Тип потока из MyData в моем клиентском классе будет находиться в пространстве имен Service Reference.
т.е.: MyServiceRef.Stream
Что заставило меня не передать поток в WCF.
Но для строковых и целых вещей этого не происходит.
Интересно, почему я считал, что Stream тип известен как string и int?
Или есть ли обходной путь?
Заранее спасибо!