3

重複の可能性:
WCF REST: wcf メソッド応答のプレフィックス「ArrayOf」を削除

次のように、c# で単純な WCF サービスを定義しました。

[ServiceContract]
public interface IAugeService
{
    [OperationContract]
    [WebGet]
    List<Face> DetectedFaces();
}

WebHttpBinding でエンドポイントを作成でき、そのほとんどは問題なく動作します。しかし、生成された xml 応答のルート要素の名前は戻り値の型から派生しているため、次のような結果が得られます。

<ArrayOfFace>
    <Face>
        ...
    </Face
    ...
</ArrayOfFace

ルート ノードに別の名前を付ける必要があります。

メソッド宣言を次のように変更しようとしました。

...  
[OperationContract]
[WebGet]
[return: MessageParameter(Name="result")]
List<Face> DetectedFaces();
...

...しかし、それは役に立ちませんでした:(

4

1 に答える 1

0

Name 属性を DataMember に追加します。ただし、余分なタグが追加されます。

[DataContract(Name = "FaceList")
public class FaceList
{
...
[DataMember(Name = "Result")]
List<Face> Faces { get; set; }
...
}
于 2011-08-03T22:32:13.480 に答える