Quiero usar la declaración using
puramente para la administración del alcance. ¿Puedo omitir la celebración de una referencia explícita al objeto subyacente que implementa IDisposable
?¿Puedo usar la instrucción de uso con RHV (valor de la mano derecha)?
Por ejemplo, dando a este declaraions:
class ITransactionScope : IDisposable {}
class TransactionGuard : ITransactionScope {...}
class DbContext
{
public IDisposable ITransactionScope()
{
return new TransactionGuard();
}
}
¿Puedo hacer lo siguiente:
void main()
{
var dbContext = new DbContext();
using (dbContext.TransactionScope())
{
// the guard is not accessed here
}
}
Es TransactionGuard
ejemplo vivo durante using
declaración?
Puedes intentarlo. Establezca un punto de interrupción en el método 'Dispose()' de la instancia de scope devuelta y vea si recibe una llamada. – linuxuser27
Realmente espero que puedas porque utilizo la misma estrategia y funciona :) –
Si todo lo que te importa es la gestión del alcance, no puedes simplemente poner llaves en el código (sin el 'uso') y que será el explícito alcance para el código dentro? –