我正在尝试使用WCF RESTful Web服务,并遇到自动实现属性的问题。WCF Xml序列化和自动实现的属性
我有一个叫DeviceDescriptor类,定义如下:
public class DeviceDescriptor
{
public string DeviceId { get; set; }
public string DisplayName { get; set; }
}
我有一个应该返回DeviceDescriptors列表的RESTful的WCF服务 - 这里是我的服务合同:
[ServiceContract]
public interface IChooser
{
[WebGet(UriTemplate="/Chooser/RegisteredDevices")]
[OperationContract]
List<DeviceDescriptor> RegisteredDevices();
[WebGet(UriTemplate = "/Chooser/Ping")]
[OperationContract]
string Ping();
}
那么,它的工作方式,除了在XML输出中,属性名称不正确,它看起来像序列化程序正在使用自动生成的支持字段,而不是属性名称的“unutterable名称”。我的输出如下:
<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>
那么,有没有办法呢?为什么WCF使用属性名称?
的StackOverflow的悖论:我只是赢得了该项目的“热门问题”徽章,但只有一个给予好评。 – 2011-08-05 13:36:15