스트림이있는 다른 MessageContract가 포함 된 MessageContract를 사용하여 WCF를 사용하여 파일을 스트리밍 할 수 있습니까? 나는 그 대답이 "아니오"라고 생각하지만, 나는 "뿌리"메시지 안에 내 파일을 담아 말하는 것을 선호한다. otherwords에서WCF 스트리밍 파일 문제
내 설정은 다음과 같이이다 :
[MessageContract]
public class Transport
{
[MessageHeader]
private readonly Guid fId;
[MessageHeader]
private readonly DateTime fTimestamp;
[MessageBodyMember(Order = 1)]
public FileTransferMessage FileTransferMessage { get; set; }
}
[MessageContract]
public class FileTransferMessage : IDisposable
{
[MessageBodyMember(Order = 1)]
public Stream FileByteStream;
[MessageHeader(MustUnderstand = true)]
public long FileLength;
[MessageHeader(MustUnderstand = true)]
public string FileName;
}
요청이 전송 및 서비스에 잘 수신, 그러나, 스트림이 제대로 직렬화 다시 같은 null 참조오고되지 않는 나타납니다. 나는 Stream이 MessageContract의 Body가되어야한다는 것을 Streaming과 함께 MessageContract에있는 규칙을 읽고 어딘가에 규칙을 읽었다는 것을 알고있다. 나는 FileTransferMessage가 Body이고 Stream이 Body라는 것을 받아 들일 수 있기를 바랬습니다.
누구든지 여기에서 내가 할 수있는 것에 대해 의견이 있습니까? 나는 Stream/FileName/FileLength를 Transport 객체에 추가하지 않기를 바란다.
감사 유진 있습니다. Stream을 메인 MessageContract에 넣을 수 있도록 결정했기 때문에 이유를 정당화하기 위해 응용 프로그램 문서에서 Stream을 호출해야 할 것입니다. – Tada