Возможно ли иметь какой-то конвертер типов, который позволяет Sync Framework обрабатывать строку "0" / "1" как логические значения для false / true. Согласно документации bool.parse она не поддерживается по умолчанию, так есть ли способ обойти это?
Подробнее, если кто-то может предложить другой подход к этой проблеме:
У меня есть собственная клиентская реализация Sync Framework для Android, и, поскольку она использует базу данных SQLite, я не могу применить какой-либо строгий тип данных к полю таблицы. Я мог бы придумать соглашение для обозначения логического поля, скажем, с префиксом «Is», но это было бы противно. Другое дело, что логические значения в SQLite обрабатываются как числовой тип, поэтому при вставке / обновлении логического значения false / true в базу данных SQLite они автоматически преобразуются в 0/1, и я не хочу вводить некоторое значение TRUE / FALSE = 1/0 на стороне Android ,
Любые мысли приветствуются.
[ОБНОВЛЕНИЕ] Подробнее:
Серверная часть состоит из некоторых служб, которые используют Microsoft Sync Framework 4.0 CTP. Там нет ничего для настройки, кроме создания области и так далее. Клиентская сторона генерирует набор изменений и передает его на сервер в формате JSON. Набор изменений происходит из базы данных SQLite (а SQLite не имеет никакого собственного логического представления, кроме числового 0/1), поэтому при чтении базы данных нет никаких признаков того, что поступающие данные имеют логический тип. Значение поля сериализуется в объект JSON в виде строки с числовым значением («0» или «1»), и, таким образом, сбой на стороне сервера при попытке проанализировать его как bool.
Кстати, можно обойти это, если выполнять одностороннюю синхронизацию между клиентом и сервером. Я вручную устанавливаю тип поля сущности на стороне сервера равным байту, и Sync Framework прекрасно использует его как «битовый» тип базы данных. Этот обходной путь не работает для сервера-клиента, хотя '.