我需要使用不支持COM +或.NET事务的外部API创建“事务”过程(确切地说是SharePoint)
我需要做的是能够按顺序执行许多过程,但是该顺序中的任何失败都意味着我将必须手动撤消所有先前的步骤。在我的案例中,只有两种类型的步骤,这两种af都非常容易撤消/回滚。
任何人都对设计模式或结构有任何建议,可能对此有用吗?
最佳答案
如果对SharePoint对象模型进行了更改,则可以使用以下事实:在调用已修改对象的Update()
方法(例如SPList.Update()
或SPWeb.Update()
)之前,不会提交更改。
否则,我将使用命令设计模式。 Head First Design Patterns的第6章甚至提供了实现撤消功能的示例。