RestSharp を使用してリモート サーバーと通信しています。ac# オブジェクトに逆シリアル化できる JSON のシリアル化された文字列を受け取ります。また、json 配列をリストに逆シリアル化することもできます。ただし、これらのオブジェクトを WPF バインディングで使用したいので、便宜上 ObservableCollection に配置する必要があります。ただし、プロパティを List から ObservableCollection (または IList、ICollection、または Collection) に変更しようとすると、逆シリアル化で例外が発生します。
Unable to cast object of type 'RestSharp.JsonArray' to type 'System.Collections.Generic.IDictionary`2[System.String,System.Object]
基礎となるコードは実際には特別なものではありませんが、とにかくここにあります:
private ObservableCollection<StationDto> stations;
[JsonProperty(PropertyName = "stations")]
public ObservableCollection<StationDto> Stations
{
get { return this.stations; }
set
{
this.stations = value;
RaisePropertyChanged(() => Stations);
}
}
Json.netにはシリアル化する具象クラスが必要なため、インターフェイスが機能しないことを理解しています。
私はかなりの量のグーグルを行いましたが、これに対する解決策は見ていません。json/rest サービスに使用される手作りのプロキシに一般的に使用されるパターンはありますか?