Como obter a última consulta SQL executada por SqlConnection?

Na verdade, meu cenário é um pouco diferente do mencionado aqui. eu pergunteide outros Pergunta, questão. Mas como não estou conseguindo solução lá, decidi mudar a abordagem.

eu tenho umSqlConnection objeto acessível ao meu código. Todos os outros objetos do ADO.NET, comoSqlCommand, SqlParameter etc não são acessíveis para mim. Esses outros objetos são consumidos pelo Dapper Extensions ORM.

Meu aplicativo executa consultas SQL usandoSqlConnection objeto e método Dapper Extensions. A consulta SQL é gerada automaticamente pelo Dapper Extensions; consulta gerada não está acessível para mim. Eu quero registrar esta consulta SQL.

Eu já tenho meu módulo de registro em vigor e a única coisa que preciso é da última consulta SQL executada pelo objeto de conexão.

Como obter a última consulta SQL executada porSqlConnection?

A seguir não funciona porqueSqlCommand não é acessível.

Se eu ficar subjacenteSqlCommand, Posso criar a consulta usando o código abaixo; infelizmente, não está acessível para mim.

public string GetCommandLogString(IDbCommand command)
{
    string outputText;
    if(command.Parameters.Count == 0)
    {
        outputText = command.CommandText;
    }
    else
    {
        StringBuilder output = new StringBuilder();
        output.Append(command.CommandText);
        output.Append("; ");

        IDataParameter objIDataParameter;
        int parameterCount = command.Parameters.Count;
        for(int i = 0; i < parameterCount; i++)
        {
            objIDataParameter = (IDataParameter)command.Parameters[i];
            output.Append(string.Format("{0} = '{1}'", objIDataParameter.ParameterName, objIDataParameter.Value));

            if(i + 1 < parameterCount)
            {
                output.Append(", ");
            }
        }
        outputText = output.ToString();
    }
    return outputText;
}

questionAnswers(1)

yourAnswerToTheQuestion