Рассмотрим следующий код:транзакционные NTFS (TxF) на Process.Start()
try
{
using(TransactionScope)
{
Process.Start("SQLInstaller.EXE");
throw new Exception();
Commit();
}
}
catch(Exception ex)
{
//Do something here
}
Будут ли изменения, внесенные SQLInstaller.exe будет откатить в этом сценарии? В частности, будут ли изменения, внесенные внешним процессом, запущенным через Process.Start(), обрабатываться TxF?
Спасибо!
Что такое 'using (TransactionScope)'? –
@Darin: псевдокод для реального объекта транзакции, используемого TxF. http://msdn.microsoft.com/en-us/magazine/cc163388.aspx#S6 – Ian
@Darin: Это класс в пространстве имен System.Transactions. Хотя «TransactionScope» активен, объекты, поддерживающие Microsoft, которые поддерживают транзакции, автоматически зачисляются в «текущую» транзакцию в области видимости (если это необходимо, распространяя ее на распределенную транзакцию). Некоторые сторонние компоненты также будут ее поддерживать, а вы если вы решите сделать это, можете автоматически набирать собственные объекты. Когда «TransactionScope» расположен, если метод 'Complete()' не был вызван, все заверенные транзакции автоматически откатываются назад. – Toby