InstrumentedAdoNet 1.0.3
dotnet add package InstrumentedAdoNet --version 1.0.3
NuGet\Install-Package InstrumentedAdoNet -Version 1.0.3
<PackageReference Include="InstrumentedAdoNet" Version="1.0.3" />
<PackageVersion Include="InstrumentedAdoNet" Version="1.0.3" />
<PackageReference Include="InstrumentedAdoNet" />
paket add InstrumentedAdoNet --version 1.0.3
#r "nuget: InstrumentedAdoNet, 1.0.3"
#:package InstrumentedAdoNet@1.0.3
#addin nuget:?package=InstrumentedAdoNet&version=1.0.3
#tool nuget:?package=InstrumentedAdoNet&version=1.0.3
instrumented-adonet
Instrumented-AdoNet is a basic library to be able to instrument adonet calls.
It does this by wrapping IDbConnection which in turn creates and returned wrapped IDbCommand objects, so that when database methods are called, we can log and intercept errors.
This library borrows the code constructs from https://github.com/MiniProfiler/dotnet to wrap DbConnection and DbCommand with some basic instrumentation so we can handle events.
This library was originally created to be able to handle database errors in a consistent manner throughout an app, without having to have code scattered all over the place.
Basic usage:
You need to create an implementation of the IInstrumentationHandler to be able to do anything useful. The example belows shows a simple implementation which prints instrumentation data to console.
Step 1 : Create an implementation of IInstrumentationHandler
public class BasicConsoleLoggingInstrumenter : IInstrumentationHandler
{
public void ExecuteStart(IDbCommand instrumentedDbCommand, SqlExecuteType executeType)
{
Console.WriteLine($"ExecuteStart:{instrumentedDbCommand.CommandText}");
}
public void ExecuteFinish(IDbCommand instrumentedDbCommand, SqlExecuteType executeType, DbDataReader reader)
{
Console.WriteLine($"ExecuteFinish:{instrumentedDbCommand.CommandText}");
}
public void OnError(IDbCommand instrumentedDbCommand, SqlExecuteType executeType, Exception exception)
{
Console.WriteLine($"OnError:{instrumentedDbCommand.CommandText}\n{exception.Message}");
}
}
Step 2 : Ensure you created and use the InstrumentConnection
The code below assumes an in-memory Sqlite connection
var instrumenter = new BasicConsoleLoggingIstrumenter();
var connection = new SqlConnection("DataSource=:memory:");
var instrumentedConnection = new InstrumentedDbConnection(connection, instrumenter);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.