さまざまなタイプのデータのリストを返す既存のWCF REST/JSONサービスがあります。私はリビジョン番号を表す単一の属性を各応答に追加したいと思います。 WCF - 汎用クラスのDataMemberのカスタム名
は、応答があるために私がしたい、私は今、次の{ [ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ] }
のように、
[DataContract]
public class Car {
[DataMember]
public String make;
[DataMember]
public String year;
}
が現在/車が/車の配列を返す「カー」クラスを持っていると言います
{ revision:"1234", cars:[ {year: "1990", make: "bmw"}, {year: "2010", make: "ferrari"} ]}
私は車の単一のクラスを持っている場合、これは簡単ですが、私のサービスは、単純なエンティティとIの数百を持っていますリビジョン属性とエンティティのリストを返すのが好きです。私は既存のアイテムをラップするジェネリッククラスを作成する場合、次のようなことができると思いました。
[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:そうでない場合は、すべての応答をラップし、すべての応答で新しい属性を含む達成するいただきました!最良の方法は?