我正在 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?