我正在使用 WCF,想要将一个大文件从客户端上传到服务器。我已经调查并决定遵循以下概述的分块方法http://msdn.microsoft.com/en-us/library/aa717050.aspx http://msdn.microsoft.com/en-us/library/aa717050.aspx
然而,这种方法(就像流式传输一样)将合约限制为有限的方法签名:
[OperationContract(IsOneWay=true)]
[ChunkingBehavior(ChunkingAppliesTo.InMessage)]
void UploadStream(Stream stream);
该示例使用了相当方便的示例,即从固定路径上传文件并将其保存到服务器上的固定路径。因此,我的问题是如何传递附加参数来指定文件名、文件路径等内容。
例如。我想要这样的东西:
[OperationContract(IsOneWay=true)]
[ChunkingBehavior(ChunkingAppliesTo.InMessage)]
void UploadStream(Stream stream, String filePath);
提前致谢,
标记。
本文 http://www2.zdo.com/archives/27-Windows-Communication-Foundation-WCF-Notes.html解释如何使用 MessageHeader 属性强制在标头中传递内容,因此不计为参数。因此,不要传递流和其他元数据,而是创建一个具有 MessageContract 属性的类并将所有元数据标记为 MessageHeader。然后,将流标记为 MessageBodyMember(本文错误地将其称为“MessageBody”)。让您的 UploadStream 方法采用一个参数,该参数的类型是您刚刚创建的 MessageContract 类的类型。我已经成功地做到了这一点,但我还没有与分块一起完成。祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)