将类实例存储到文件/数据库的最佳方法

2024-03-11

将类的实例存储到文件/数据库的最佳方法是什么?

我们有一个名为 Command 的基类和大量派生类。 用户通过向图形设计器添加命令来创建这些类的实例 他们可以在哪里配置它们。 (设置属性)。

然后我们需要一种方法将这些“命令”存储到文件中而不丢失 任何信息。

一种想法是使用 db4o,但该项目不接受 GPL 许可证。

有什么建议或代码示例吗?

Update:

(为了“去模糊”我的问题:p)

生成的代码可能类似于:

    command[i++] = new DelayInSecondsCommand(2);
    command[i++] = new DaliRequestCommand(1, false, 254);
    command[i++] = new DaliRequestCommand(2, false, 254);
    command[i++] = new DaliRequestCommand(3, false, 254);
    command[i++] = new WaitInSecondsCommand(2);             
    command[i++] = new DaliRequestCommand(1, false, 0);
    command[i++] = new DaliRequestCommand(2, false, 0);
    command[i++] = new DaliRequestCommand(3, false, 0);
    command[i++] = new JumpCommand(0);

但随后有大量不同的命令。

我知道 .NET 序列化是可能的,尽管我以前从未使用过它, 但我想知道是否有更好的选择,就像我说的 db4o 看起来不错,但许可证不适合该项目。

更新2:

感谢您的答复。我现在可能会采用序列化解决方案, 但我也会研究其他选择。供参考。数据存储在 SQL Compact 数据库中。


您是否想将数据保存在表中?或者作为 blob/clob 数据?既然你提到了文件,我假设后者:任何标准的 .NET 序列化器都应该没问题 - 它们都支持继承等。我会考虑DataContractSerializer,因为这结合了现场级支持(例如BinaryFormatter),以及装配独立性XmlSerializer.

您还可以考虑更深奥的事情,例如protobuf网络 http://code.google.com/p/protobuf-net/.

那么:您需要做什么在标准序列化器下不起作用?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将类实例存储到文件/数据库的最佳方法 的相关文章

随机推荐