Ich experimentiere mit WCF RESTful Web-Services und ich habe ein Problem mit Auto-Implementierten Eigenschaften.WCF Xml Serialisierung und AutoImplemented Eigenschaften
Ich habe eine Klasse namens DeviceDescriptor, wie folgt definiert:
public class DeviceDescriptor
{
public string DeviceId { get; set; }
public string DisplayName { get; set; }
}
ich einen RESTful WCF-Dienst haben, soll eine Liste der DeviceDescriptors zurückzukehren - hier ist mein Servicevertrag:
[ServiceContract]
public interface IChooser
{
[WebGet(UriTemplate="/Chooser/RegisteredDevices")]
[OperationContract]
List<DeviceDescriptor> RegisteredDevices();
[WebGet(UriTemplate = "/Chooser/Ping")]
[OperationContract]
string Ping();
}
Nun, es funktioniert irgendwie, außer dass in der XML-Ausgabe die Eigenschaftsnamen nicht richtig ausgegeben werden, es sieht so aus, als ob der Serializer die "unaussprechbaren Namen" der automatisch erzeugten Unterstützungsfelder anstelle der Eigenschaftsnamen verwendet. Meine Ausgabe kommt so aus:
<DeviceDescriptor>
<_x003C_DeviceId_x003E_k__BackingField>Pipe.Dome</_x003C_DeviceId_x003E_k__BackingField>
<_x003C_DisplayName_x003E_k__BackingField>Pipe diagnostic tool</_x003C_DisplayName_x003E_k__BackingField>
</DeviceDescriptor>
Also gibt es einen Ausweg? Warum verwendet WCF nicht die Eigenschaftsnamen?
Das Paradox Stackoverflow: Ich verdienen nur die ‚beliebte Frage‘ Abzeichen für diesen Titel, aber es gibt nur eine upvote. –