我有一個現有的WCF REST/JSON服務,它返回不同類型數據的列表。我想爲每個響應添加一個代表版本號的屬性。WCF - 通用類的DataMember的自定義名稱
說我有一個「汽車」類
[DataContract]
public class Car {
[DataMember]
public String make;
[DataMember]
public String year;
}
目前/汽車/返回汽車的陣列,像下面
{ [ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ] }
現在,我想的響應是
{ revision:"1234", cars:[ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ]}
這是微不足道的,如果我只有一個類的汽車,但我的服務有數百個簡單的實體和我爲每個返回修訂屬性和實體列表。我想我可以做下面的事情,在那裏創建一個泛型類來包裝現有的項目。
[DataContract]
public class VersionedItem<T> {
String revision;
T item;
[DataMember]
public String revision {
get{}
set{}
}
[DataMember]
public T item {
get{}
set{}
}
}
這只是我需要以下退換,幾乎偉大工程:
{ revision:"1234", cars:[ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ] }
這實際上是返回
{ revision:"1234", item:[ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ] }
問題1:有沒有什麼辦法,專門實例的泛型類來指定項目屬性的正確名稱(在這種情況下是汽車)? IE,(總豬食,而是幫助傳達出點)
public class VersionedCar : VersionedItem<Car>
{
[DataMember(Name="cars")]
public Car item{
get{}
set{}
}
}
問題2:如果不是,什麼實現所有包裹的答覆,幷包括所有響應的新屬性的最佳方式是什麼?