c# - 在 C# 中使用 XML 作为列表结构的设计模式

标签 c# .net winforms model-view-controller

我正在 C# WinForms 中设计一个基于列表的应用程序,我想将数据存储在 XML 文件中(最终将序列化到数据库中)。我有一个自定义控件,可以根据 XML 显示列表数据,但我无法确定处理数据的最佳结构。我有一个 ListManager 类,它跟踪 XMLDocument,并具有 CreateList 和 AddListItem 等方法。我应该使用 XML 结构的本地副本作为 UI 控件的读取内容,还是应该使用实际的 XML 文件本身?有没有比 XMLDocument 更好的东西,我应该将其存储为成员变量来保存数据?

另外,我应该如何将 Controller 与 UI 控件链接起来?换句话说,当添加新项目时,我的 ListManager 应如何提醒 ListControl? (或者它根本不应该执行更新通知,而是主窗体应该执行此操作?)

谢谢!

最佳答案

我将创建一个自定义类来使用强类型集合(例如通用集合 System.Collections.Generic.List)来保存数据。然后,您可以在客户端上将该类与 XML 进行序列化,直到您准备好将内容推送到数据库中为止。使用序列化意味着您可以使用普通的旧 C# 对象,而不是尝试将 XMLDocument 类硬塞到您的业务对象中。

看看this article有关序列化如何工作的一些详细信息。

关于c# - 在 C# 中使用 XML 作为列表结构的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1967626/

相关文章:

C#:集合已修改;枚举操作可能无法执行

c# - 异常处理中函数参数的一般记录

asp.net - 是否需要在 web.config 中保护连接字符串?

c# - 在 Richtextbox 中插入分页符

c# - 初始化许多静态实例怎么样?有没有人见过用法?

.net - WPF 应用程序在 Windows Server 2008 R2 上崩溃

c# - 将 null 添加到 List<bool?> 作为 IList 抛出异常

c# - 在 Mono 中使用 Microsoft Chart (WinForm)

c# - 在OnMouseMove事件中查看鼠标左键是否被按住

c# - 捕获另一个表单抛出的异常