是否可以将作为复杂对象一部分的流作为 Wcf 方法的返回数据返回?
我已经检查了大多数关于使用 Wcf 恢复流数据的 msdn 参考资料;比如这个。当方法返回类型为流(或参数为流)时,所有示例似乎都显示了如何返回流。
我想知道的是,如果数据是复杂对象属性的一部分,它可以返回流吗?例如,GetData() 是否可以返回包含如下所示流的数据:
[DataContract]
public class Data
{
[DataMember]
public string Info { get; set; }
/// <summary>
/// This is the file stream that would be returned to client.
/// </summary>
[DataMember]
public Stream File { get; set; }
}
[ServiceContract()]
public interface IService
{
[OperationContract]
Data GetData();
}
从我最初的测试来看,这似乎不起作用。我在客户端出现异常(意外的套接字关闭)。无论 DataContractSerialization 还是 XmlSerialization,结果都是相同的。我已经设置了所需的流媒体模式TransferMode.Streamed
。