如何在WCF响应中重命名xml root?

时间:2011-08-03 12:04:30

标签: c# xml wcf root operationcontract

  

可能重复:
  WCF REST: remove prefix “ArrayOf” for wcf method response

我在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();
...

......但它没有帮助:(

1 个答案:

答案 0 :(得分:0)

将“名称”属性添加到DataMember。不过,它会添加一个额外的标签。

[DataContract(Name = "FaceList")
public class FaceList
{
...
[DataMember(Name = "Result")]
List<Face> Faces { get; set; }
...
}