Я использую RestSharp для связи с удаленным сервером. Я получаю сериализованную строку JSON, которую я могу десериализовать в объект С#. Я также могу десериализовать массивы json в список. Однако я хочу, чтобы эти объекты использовались в привязках WPF, поэтому для удобства мне нужно поместить их в ObservableCollection. Однако, если я попытаюсь изменить свойство со списка на ObservableCollection (или IList, или ICollection, или коллекцию), я получаю исключение при десериализации.
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?