Как бы вы получили объекты Sql Command для данного TableAdaptor и SqlDataAdaptor в C # (.NET 2.0) - PullRequest
0 голосов
/ 19 сентября 2008

Я создаю общий класс обработки ошибок / ведения журнала для наших приложений. Цель состоит в том, чтобы записать информацию об исключении, информацию о классе и функции (а также параметрах) и, если необходимо, информацию об объекте System.Data.SqlClient.SqlCommand.

Я хотел бы иметь возможность обрабатывать передачу в SqlCommands, TableAdaptors и SqlDataAdaptors.

Я новичок в использовании рефлексии, и я знаю, что это возможно, я просто не знаю, как это сделать. Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 19 сентября 2008

Это то, о чем вы говорите?

SqlDataAdapter da = new SqlDataAdapter();
var cmd1 = ((IDbDataAdapter)da).DeleteCommand;
var cmd2 = ((IDbDataAdapter)da).UpdateCommand;
var cmd3 = ((IDbDataAdapter)da).SelectCommand;
var cmd4 = ((IDbDataAdapter)da).InsertCommand;

SqlDataAdapter реализует IDbDataAdapter, который имеет методы получения / установки для всех команд CRUD. SqlDataAdapter реализует их явно, поэтому они не отображаются в сигнатуре класса, если вы сначала не приведете его к интерфейсу. Нет необходимости в отражении.

...