![]() |
1
5
假设对象的所有值都作为公共属性可用,则可以使用XMLSerializer将对象转换为XML字符串,然后使用XMLDeserializer重新创建对象。 有一种扩展方法可以实现这一点 here . 如果有私有变量,仍然可以编写自己的自定义序列化/反序列化方法。 编辑以响应原始问题编辑: 您可以使用这些序列化技术中的任何一种将字符串存储到数据库中。另一种选择是使用ORM(对象关系映射器)来弥合对象和数据库之间的差距。 |
![]() |
2
2
通常人们会使用数据库来做这类事情。这可能是推荐的做法。 然而,如果您想要一个快速而肮脏的方法,您可以用相对较少的代码将其序列化为Xml或二进制。查看System.Runtime.Serialization内容。Xml或二进制的折衷是版本控制耗费大量时间。 考虑包含1个应用程序中的对象的XML文件集合。如果您从1.0开始就向这些对象添加了字段,那么它们将无法与任何新的1.1对象兼容。要解决此问题,您必须从类型1.0编写手动更新序列->1.1. 更糟糕的是,如果您使用自动发现代码(自动序列化),例如xml或二进制序列化程序,您甚至可能需要将对象命名为不同的名称Product1/Product1.1/等等,或者编写自己的序列化代码。 如果你的应用程序开始接近任何严重程度,我会说你可能会想使用数据库。SqlLite对于单用户应用程序非常好而且简单,任何更大的应用程序都可以使用,而且您需要一个合适的RDBMS。 |
![]() |
3
1
您需要了解.NET序列化,这是一个大主题。 Here's an introductory tutorial. |
![]() |
5
0
我认为数据库也会有这个问题——除了我想它将由您使用的任何方法来处理,以将现有数据库迁移到最新版本(即,向RDBMS表添加新列或向ODBMS对象添加属性)。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |