.net - 在 (.NET 4.0 C#) Sync Framework 4.0 CTP 中将 "0"/"1"解析为 bool

标签 .net sqlite data-synchronization

是否可能有某种类型的转换器允许 Sync Framework 将字符串“0”/“1”视为 false/true 的 bool 值。根据 bool.parse默认情况下不支持它的文档,那么有没有办法解决它?

更多详细信息,以防有人可以针对此问题建议不同的方法: 我有一个针对 android 的自定义 Sync Framework 客户端实现,因为它使用 SQLite 数据库,所以我无法在表字段上强制执行某些严格的数据类型。我可以想出一个约定来指示带有“Is”前缀的 bool 字段,但这会很讨厌。另一件事是 SQLite 中的 bool 值被视为数字类型,因此向 SQLite 数据库插入/更新 bool 值 false/true 会自动将它们转换为 0/1,我不想在 android 端引入一些 TRUE/FALSE = 1/0 转换.

欢迎任何想法。

[更新] 更多细节: 服务器端包含一些使用 Microsoft Sync Framework 4.0 CTP 的服务。除了创建作用域等之外,没有太多需要配置的。客户端生成变更集并使用 JSON 格式将其传输到服务器。变更集来自 SQLite 数据库(SQLite 除了数字 0/1 之外没有任何 native bool 表示),因此在读取数据库时没有迹象表明即将到来的数据是 bool 类型。字段值作为具有数值(“0”或“1”)的字符串序列化到 JSON 对象中,因此服务器端在尝试将其解析为 bool 值时失败。

顺便说一句,如果进行单向客户端到服务器同步,则可以解决这个问题。我手动将服务器端实体字段类型设置为字节,Sync Framework 很好地将其用作“位”数据库类型。不过,此解决方法不适用于服务器到客户端。

最佳答案

在 C#/.NET 中通常的方法是使用 Convert.ToBoolean()

关于.net - 在 (.NET 4.0 C#) Sync Framework 4.0 CTP 中将 "0"/"1"解析为 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833101/

相关文章:

c# - .Net如何允许将Nullables设置为Null

C# Sqlite 使用 DataTable 抛出 ConstraintException

android - 在多个 iOS 和 Android 设备之间保持数据库同步的最简单方法是什么?

c# - 在 C# 中使用半字节

.net - 如何更改 Windows 服务环境路径

mysql - 从一系列年份中选择数字

android - 仅当值不为 null android 时才更新 sqlite 数据库

mysql - 同步2个数据库

java - SymmetricDS:我应该使用哪种方法来同步特定表?

c# - 确定两个数据表包含相同数据的最快方法?