序列化的NHibernate配置对象 - 检测过期或按需重建?

时间:2010-03-17 03:41:11

标签: .net nhibernate fluent-nhibernate

我一直在使用serialized nhibernate configuration objects(也讨论过herehere)来加速我的应用程序启动从大约8秒到1秒。我也使用fluent-nhibernate,所以路径更像是

  1. 代码中的ClassMap类定义
  2. fluentconfiguration
  3. XML
  4. nhibernate配置
  5. 配置序列化为磁盘。
  6. 执行此操作的问题是,运行过期映射的风险 - 如果我更改映射但忘记重建序列化配置,那么我最终使用旧映射而没有意识到它。这并不总是会在测试过程中立即产生明显的错误,并且多次错误行为一直是检测和修复的真正难题。

    是否有人知道如何检测我的类图是否已更改,以便我可以立即发出警告/错误或根据需要重建它?

    目前我正在将编译的程序集上的时间戳与序列化配置进行比较。这将提取映射更改,但不幸的是,它会产生巨大的误报率,因为任何对代码的更改都会导致过期标记。我无法将类映射移动到另一个程序集,因为它们紧密集成到业务逻辑中。

    这一直让我感到困惑,所以我想知道是否有人有任何建议?

1 个答案:

答案 0 :(得分:0)

为什么不在构建过程中创建序列化配置文件并将其包含在部署包中?

它仍然是为了快速加载而序列化的,但你保证每个版本都有最新版本。