public override WpfObservableCollection <IParameter> ReadJson(JsonReader reader, Type objectType, WpfObservableCollection <IParameter> existingValue, bool hasExistingValue, JsonSerializer serializer) { //檢查是否已有 WpfObservableCollection<IParameter>,沒有則 new 一個。 理論上都會有才對... var result = hasExistingValue ? existingValue : new WpfObservableCollection <IParameter>(); //因不能反序列化成 IParameter,故直接反成 UrParameter var obj = serializer.Deserialize <IList <UrParameter> >(reader); //如果反成功,加入集合。 因若直接 WpfObservableCollection<UrParameter> 塞入 WpfObservableCollection<IParameter> 會跳 IParameter 無法等同 UrParameter 的型別錯誤!! if (obj != null) { foreach (var item in obj) { result.Add(item); } } return(result); }
public override void WriteJson(JsonWriter writer, WpfObservableCollection <IParameter> value, JsonSerializer serializer) { serializer.Serialize(writer, value); }
public UrMethod() { Parameters = new WpfObservableCollection <IParameter>(); }