1

我正在 Windows Mobile 上开发 C# 应用程序,并且像我的大多数 WM 应用程序一样,每当我决定序列化策略时,我总是陷入困境。在桌面世界中,我并不太担心它,因为我已经开发了一个非常强大的自定义 xml 序列化程序 - 但是,在 WM 世界中,我不想使用它,因为反射性能会受到影响。

所以我针对数据访问对象 (DAO) 接口开发所有东西,因此我可以轻松换出不同的实现来序列化为 xml、注册表、sqlce 等。在开始开发时,我通常实现一个非持久内存 DAO (使用 Dictionary<>),当我想要持久化数据时使用 XmlSerializer DAO,然后当一切完成后,转移到成熟的 sqlce DAO。

但是,在我最新的应用程序中,我不能使用 XmlSerializer DAO,因为它(不)处理接口属性的能力非常差。IE,我有一个 Foo 对象,它包含一个 List< IBar > Bars 属性,XmlSerializer 无法序列化它(尽管我很容易能够开发自己的自定义 xml 序列化器,它可以 - 去图)。

所有这些都是为了问这个问题:您找到了哪些 DAO 策略来帮助您开发 WM 应用程序?你是否为不同应用成熟度级别的多个不同 DAO 提前计划?你是从成熟的 sqlce DAO 开始的吗?当无法使用 XmlSerializer 时,您会推荐什么用于快速简便的持久序列化 DAO?

4

1 回答 1

1

好吧,它不一定适用于您的情况(因为它需要XmlSerializer具体类型),但protobuf-net是一个二进制序列化引擎,适用于所有 .NET 变体,包括 CF 2.0 和 CF 3.5;这将允许您存储数据,并与您的全脂 3.5 服务器(或者,实际上,与 java、perl、php)交换数据。

它肯定是快速和简单的,所以如果你想要 WM 中的可移植数据,绝对值得一看。

于 2008-12-27T15:59:04.437 回答