ILinkedUndoContext.BeginTransaction 方法

将对模型的一系列更改进行分组。 如果任何更改失败,则可以中止整个组,保持模型不变。 调用提交 () 完成该事务。 如果用户调用了撤销操作,则整个组将被回滚。

命名空间:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
程序集:  Microsoft.VisualStudio.Modeling.Sdk.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 中)

语法

声明
Function BeginTransaction ( _
    description As String _
) As ILinkedUndoTransaction
ILinkedUndoTransaction BeginTransaction(
    string description
)

参数

  • description
    类型:System.String
    识别此事务的任何字符串。

返回值

类型:Microsoft.VisualStudio.Modeling.ExtensionEnablement.ILinkedUndoTransaction
新事务。当您的更改完成后,对此事务进行提交、中止和处置。

备注

执行此操作将 using 子句中的初始化表达式,确保释放了事务,当完成更改时。

没有捕获 using 块中的异常将导致在该内任何 UML 模型更改回滚。 注意这仅适用于对 UML 模型的更改,而不是对其他变量,外部数据库,则对文件的更改,依此类推。

可以嵌套事务。

有关详细信息,请参阅如何:使用事务链接模型更新

示例

try
{
  using (ILinkedUndoTransaction transaction =
              LinkedUndoContext.BeginTransaction("Swap names"))
  { 
    Operation1(); 
    Operation2();
    // Any exception in the preceding statements
    // will undo all of the changes in the model.
    transaction.Commit(); // Always remember Commit()!
  }
}
catch ()
{
    // If control reaches here,
    // Operation1 and Operation2 have
    // made no change to the model.
}

.NET Framework 安全性

请参阅

参考

ILinkedUndoContext 接口

Microsoft.VisualStudio.Modeling.ExtensionEnablement 命名空间