2

これがシナリオです。デスクトップ アプリによって消費されるいくつかのメソッドとの既存のサービス コントラクトがあります。ReST を介していくつかの操作コントラクトを公開する必要があります。ただし、すべてのメソッドを ReST として公開する必要があります。それ以外の場合、パラメーターがラップされている場合によく発生する以下のテキストには例外があります。

本当に混乱します。フレームワークのバグのようです。

エラーメッセージ -

コントラクト 'IService' の操作 'SaveEntitiy' は、ラッパー要素なしでシリアル化される複数の要求本文パラメーターを指定します。ラッパー要素なしでシリアル化できる body パラメーターは最大で 1 つです。余分なボディ パラメーターを削除するか、WebGetAttribute/WebInvokeAttribute の BodyStyle プロパティを Wrapped に設定します。

運営契約。

[ServiceContract]
public interface IService
{
        [OperationContract] //No need to expose this as ReST
        string SaveEntity(int id,string name);

        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
        string GetData(int value);
}

SaveEntity を ReST として公開すると、すべてが機能します。構成が正しいことを意味します。

4

1 に答える 1

0

GET を使用しようとしている場合は、以下のようにWebGetメソッドを使用してください。

[WebGet(UriTemplate = “GetData/input/{値}”)]

または

[WebGet] を単独で使用することもできます。

于 2015-12-11T07:24:09.427 に答える