public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var obj = (dynamic)serializer.Deserialize(reader);
if (obj.path == null) throw new NotSupportedException();
var installedPath = (string)obj.path;
return IsCandy(installedPath)
? new CandyApplication()
: new InstalledApplication(installedPath);
}
public override bool CanConvert(Type objectType)