0

基本的に、次のタイプのオブジェクトを SilverLight から WCF サービスに送信しようとしています。オブジェクトのメッセージ コントラクトは次のとおりです。

[MessageContract]
    public class UploadMessage
    {
        [MessageHeader(MustUnderstand = true)]
        public Token Token;

        [MessageHeader(MustUnderstand = true)]
        public string FileExtension;

        [MessageHeader(MustUnderstand = true)]
        public Product Product;

        [MessageBodyMember(Order = 1)]
        public Stream FileByteStream;

}

[OperationContract(IsOneWay = true)]
        void UploadFileStream(UploadMessage upm);

ただし、SilverLight クライアントからメソッドを呼び出そうとすると、FileByteStream パラメーターしか指定できません (他の 3 つではありません)。

ここで何が問題になる可能性がありますか?

4

1 に答える 1

1

Visual Studio を使用していますか?

メッセージ コントラクトにメッセージ ヘッダーを追加した後、Silverlight プロジェクトの WCF サービスへのサービス参照を更新しましたか?

この問題は通常、WCF サービスにいくつかの変更を加えたが、サービス参照または Web 参照を更新するのを忘れた場合に発生します。

お役に立てれば。

EDIT1:

サービス参照を追加するときは、メッセージ コントラクトの作成に関するボックスをチェックする必要があることを忘れていました。既定では、Visual Studio はメッセージ コントラクトを作成せず、WCF クライアント プロキシでデータ コントラクトのみを作成します。メッセージ ヘッダーにアクセスできるのは、メッセージ コントラクトだけです。

于 2013-04-15T13:16:27.517 に答える