如何从WCF REST Startkit获得干净的XML休息结果?

时间:2010-07-15 18:15:04

标签: .net wcf rest

我在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结果?

1 个答案:

答案 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; }
   ...
}