Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Дмитрий Загорулькин от 26-02-2020, 19:11:32

Название: StartOpenCloseTransaction vs new OpenCloseTransaction
Отправлено: Дмитрий Загорулькин от 26-02-2020, 19:11:32
Обнаружил, что иногда разработчики используют конструктор new OpenCloseTransaction() вместо привычного Database.TransactionManager.StartOpenCloseTransaction. Например, тут: https://spiderinnet1.typepad.com/blog/2012/08/autocad-net-real-performances-of-objectidopengetobject-transaction-and-openclosetransaction.html
Я понимаю, что раз OpenCloseTransaction является простой обёрткой над Open-Close, то, по идее, для старта ей не требуется менеджер транзакций. Возможно, что запуск с помощью менеджера был добавлен просто для совместимости с обычной транзакцией. Или же есть какие-то различия в этих запусках?
Название: Re: StartOpenCloseTransaction vs new OpenCloseTransaction
Отправлено: Александр Ривилис от 26-02-2020, 22:29:17
Возможно, что запуск с помощью менеджера был добавлен просто для совместимости с обычной транзакцией.
Скорее не для совместимости, а для единообразия. :) Никакого другого смысла тут нет.
Название: Re: StartOpenCloseTransaction vs new OpenCloseTransaction
Отправлено: Дмитрий Загорулькин от 26-02-2020, 22:36:07
Хе-хе:
Код - C# [Выбрать]
  1. // Autodesk.AutoCAD.DatabaseServices.TransactionManager
  2. public virtual OpenCloseTransaction StartOpenCloseTransaction()
  3. {
  4.         return new OpenCloseTransaction();
  5. }