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 回答