У меня есть следующая ситуация. Некоторое время работы .Net не работает очень хорошо, и мне нужно создать обходной путь. Как там SqlCommand.ExecuteReader()
, который иногда возвращает закрытый объект считывателя, и я хочу иметь такой код:
SqlDataReader MyExecuteReader( this SqlCommand command )
{
var reader = command.ExecuteReader();
if( reader.IsClosed() ) {
throw new ClosedReaderReturnedException();
}
return reader;
}
Это было бы просто отлично, только теперь мне нужно изменить весь код, который вызывает ExecuteReader()
, чтобы он теперь вызывал MyExecuteReader()
, и это затрудняет обслуживание.
Есть ли способ каким-то образом объявить, что когда какой-либо из моих кодов хочет SqlCommand.ExecuteReader()
, называемый MyExecuteReader()
, вызывается вместо этого? Эффективно ли можно заменить существующий метод другим, имеющим точно такую же подпись и одно и то же имя?