SyncFrameworkが文字列"0"/"1"をfalse/trueのブール値として処理できるようにするある種の型コンバーターを使用することは可能ですか。bool.parseのドキュメントによると、デフォルトではサポートされていないので、回避する方法はありますか?
誰かがこの問題への別のアプローチを提案できる場合の詳細:Android用のカスタムSync Frameworkクライアント実装があり、SQLiteデータベースを使用しているため、テーブルフィールドに厳密なデータ型を適用する方法がありません。たとえば、「Is」プレフィックスを使用してブールフィールドを示す規則を思い付くことができますが、それは厄介です。もう1つのことは、SQLiteのブール値は数値型として扱われるため、SQLiteデータベースにブール値false / trueを挿入/更新すると、自動的に0/1に変換され、Android側でTRUE / FALSE=1/0変換を導入したくないということです。 。
どんな考えでも大歓迎です。
[更新]詳細:サーバー側は、Microsoft Sync Framework4.0CTPを使用しているいくつかのサービスで構成されています。スコープの作成などを除いて、構成するものは多くありません。クライアント側はチェンジセットを生成し、JSON形式を使用してサーバーに送信します。チェンジセットはSQLiteデータベースから取得されます(SQLiteには数値0/1以外のネイティブのブール表現はありません)。したがって、データベースを読み取るときに、取得するデータがブール型であるという兆候はありません。フィールド値は数値("0"または"1")の文字列としてJSONオブジェクトにシリアル化されるため、サーバー側はブール値に解析しようとして失敗します。
ところで、一方向のクライアントからサーバーへの同期を行う場合は、これを回避することができます。サーバー側のエンティティフィールドタイプを手動でバイトに設定しましたが、SyncFrameworkはそれを「ビット」データベースタイプとしてうまく使用しています。この回避策は、サーバーからクライアントへの変換では機能しません。