如何在WCF响应中重命名xml根

本文关键字:重命名 xml 响应 WCF | 更新日期: 2023-09-27 18:04:27

可能重复:
WCF REST:删除前缀“ArrayOf;对于wcf方法响应

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

但它没有帮助:(

如何在WCF响应中重命名xml根

将Name属性添加到DataMember中。不过,它会添加一个额外的标签。

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