4

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 サービスに使用される手作りのプロキシに一般的に使用されるパターンはありますか?

4

1 に答える 1