我正在开发用于上传文档的 WCF 服务,以前我正在使用byte[]
,现在要求已更改为使用Stream
我正在为 WCF 使用外部 WSDL 文件。
我已将使用 byte[] 的函数的签名更改为 Stream,但现在当我创建客户端时,Upload 函数要求与以前相同的输入参数。
你能帮我解决这个问题吗?
有什么不对。我无法更改 WSDL 文件。我的 WSDL 文件base64Binary
用于 byte[],这对于 Stream 也足够了。
服务器代码:
public Response Upload(RequestClass req)
{
}
public RequestClass{
HeaderClass Header;
Stream content;
}
客户端生成的代码:
public Response Upload(Header hdr, byte[] content);
更新:
<xs:element name="UploadDocumentReqMsg">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="UploadDocumentContent" nillable="true" type="str:Stream"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UploadDocumentReqHdr" nillable="true" type="tns:RequestHeader"/>
我在 WSDL 中的请求,因此对于 byte[] 和 Stream,我使用的是 Stream。