事务允许将 UML 模型存储区的操作组合到一起,因此,如果任何一个失败,整个组都将回滚。 提交该事务后,该用户可以撤消有单个撤消命令的整个组。
命名空间: Microsoft.VisualStudio.Modeling.ExtensionEnablement
程序集: Microsoft.VisualStudio.Modeling.Sdk.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 中)
语法
声明
Public Interface ILinkedUndoTransaction _
Inherits IDisposable
public interface ILinkedUndoTransaction : IDisposable
ILinkedUndoTransaction 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
![]() |
Id | BeginTransaction 设置的此事务的名称。 |
页首
方法
名称 | 说明 | |
---|---|---|
![]() |
Abort | 自事务生成起撤销已出现的模型存储区的所有更改。不提交但释放事务有同样的效果。中止不会撤消对其他程序变量或外部资源的更改。 |
![]() |
Commit | 完成该事务,以便在释放时,在其中执行的操作不会被撤消。 |
![]() |
Dispose | 执行与释放或重置非托管资源相关的应用程序定义的任务。 (继承自 IDisposable。) |
页首
备注
在 Visual Studio 扩展,则可以获取ILinkedUndoTransaction 可以创建的上下文如下所示:
[Import]
public ILinkedUndoContext LinkedUndoContext { get; set; }
在方法中,可以创建从此上下文的事务:
using (ILinkedUndoTransaction transaction =
LinkedUndoContext.BeginTransaction("Swap names"))
{
Operation1();
Operation2();
transaction.Commit(); // Always remember Commit()!
}
未捕获 using 内的异常块将导致在其中的任何 UML 模型更改回滚。 请注意这仅适用于 UML 模型中的更改,而不是对其他变量的更改,外部数据库,文件,等等。
事务可以嵌套。
有关详细信息,请参阅 如何:使用事务链接模型更新。