2

ドキュメントをアップロードするための WCF サービスを開発しています。以前は使用byte[]していましたが、使用するように要件が変更されました。Stream

WCF 用の外部 WSDL ファイルを使用しています。

byte[] を使用する関数の署名を Stream に変更しましたが、クライアントを作成すると、Upload 関数は以前と同じ入力パラメーターを要求します。

これで私を助けてくれませんか。

どうしたの。WSDL ファイルを変更できません。私の WSDL ファイルはbase64Binarybyte[] を使用していますが、これは 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 を使用していました。

4

1 に答える 1

1

WSDL を変更できないとはどういう意味ですか? クライアントを適切に生成するには、新しい WSDL ファイル (新しい署名付き) が必要です。

Stream と WCF を使用する場合、バインディングに関していくつかの制限があります。これに関するリンクは次のとおりです

乾杯 - ジョッケ

于 2012-08-07T10:29:19.847 に答える