Я хочу использовать заявление using
только для управления областью. Могу ли я пропустить явное указание на базовый объект, который реализует IDisposable
?Могу ли я использовать инструкцию using с RHV (правое значение)?
Например, давая это declaraions:
class ITransactionScope : IDisposable {}
class TransactionGuard : ITransactionScope {...}
class DbContext
{
public IDisposable ITransactionScope()
{
return new TransactionGuard();
}
}
Могу ли я сделать следующее:
void main()
{
var dbContext = new DbContext();
using (dbContext.TransactionScope())
{
// the guard is not accessed here
}
}
Является ли TransactionGuard
экземпляр жив во время using
заявления?
Вы можете попробовать. Задайте точку останова в методе 'Dispose()' экземпляра возвращенной области видимости и посмотрите, вызвана ли она. – linuxuser27
Я действительно надеюсь, что вы можете, потому что я использую ту же стратегию, и она работает :) –
Если все, о чем вы заботитесь, это управление областью, не можете ли вы просто поместить фигурные скобки в код (без 'использования'), и это будет явным область внутри кода? –