从备份恢复应用程序时如何临时规避域对象的创建合同?

How to temporarily circumvent domain object's creation contracts when restoring application from backup?

我们应用程序的域模型对象具有具有重要契约的构造函数。例如,一个 Entry 对象需要一个 Catalog 对象才能创建。问题是,当我从 XML 文件中批量恢复对象时,必须暂时违反这些合同,因为在备份文件完全处理之前,相关对象可能不可用。

这个问题是否有既定的模式或解决方案?

有多种方法可以做到这一点。

Is there any established pattern or solution to this problem?

我想到的是 momento pattern

很明显,使用您当前的构造函数无法完成工作 :) --- 因此您将需要使用另一个方法调用。

如果您有可以获取的参数,您可以使用另一个构造函数。

在 C# 世界中(我确信其他语言中存在类似或更好的构造)您可以尽可能地制作方法/构造函数 internal 并使用 InternalsVisibleToAttribute授予您的批量加载器访问权限。