Как да преименувам xml root в WCF отговор?

Възможен дубликат:
WCF REST: премахнете префикса ArrayOf за отговор на wcf метод

Дефинирах проста WCF услуга в c# по следния начин:

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

Мога да създам крайна точка с WebHttpBinding и повечето от тях работят добре. Но името на основния елемент в генерирания xml отговор е извлечено от типа на връщането, така че получавам нещо подобно:

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

Трябва да дам друго име на основния възел.

Опитах се да променя декларацията на метода на това:

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

... но не помогна :(


person sne11ius    schedule 03.08.2011    source източник
comment
Някой друг вече е имал същия проблем: Как мога да контролирам името на общите WCF връщани типове?   -  person Filburt    schedule 03.08.2011
comment
В тази тема няма нищо, което да реши проблема ми.   -  person sne11ius    schedule 03.08.2011


Отговори (1)


Добавете атрибут Name към вашия DataMember. Това обаче ще добави допълнителен етикет.

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