我在Visual Studio 2008或.Net 3.5中使用WCF REST Start Kit。示例服务将能够获得干净的xml结果,如下所示:
<SampleItem>
<Value>SampleValue</Value>
</SampleItem>
SampleItem是Service.scv.cs中具有Value属性的简单类。然后我尝试使用像
这样的自定义类[global::System.Serializable()]
public class MyDomainClass {
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string Name { get; set; }
[global::System.Runtime.Serialization.DataMemberAttribute()]
public double Value { get; set; }
...
}
然后我使用这个类插入来替换Service.svc.cs的泛型类:
//public class Service : SingletonServiceBase<SampleItem>,
// ISingletonService<SampleItem>
public class Service : SingletonServiceBase<MyDomainClass>,
ISingletonService<MyDomainClass> {...}
它工作正常但XML结果如下:
<MyDomainClass>
<_x003C_Name_x003E_k__BackingField>a name</_x003C_Name_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>7.198</_x003C_Value_x003E_k__BackingField>
...
我认为我已经为我的类定义了一个模式,因此XML可能像示例一样干净。我应该怎样做才能以干净或预期的方式提升我的XML结果?
答案 0 :(得分:1)
清理xml实体名称的最简单方法是指定DataMemberAttribute的name属性:
[Serializable, DataContract]
public class MyDomainClass
{
[DataMember(Name="Name")]
public string Name { get; set; }
[DataMember(Name="Value")]
public double Value { get; set; }
...
}