Using MiniProfiler with SqlDataSource ASP.NET WebForms Control
I recently implemented MiniProfiler into an existing ASP.NET WebForms application that makes use of data binding to the SqlDataSource
control. Since the SqlDataSource
uses a DbProviderFactory
internally, it is fairly simple to extend the control to utilize MiniProfiler
through inheritance and overriding a single method of the SqlDataSource
.
Here’s a very simple class that inherits from the SqlDataSource
control and injects MiniProfiler
support to be able to profile the SQL query used by the control:
public class ProfiledSqlDataSource : SqlDataSource
{
protected override DbProviderFactory GetDbProviderFactory()
{
// get the "base" DbProviderFactory
var baseDbProviderFactory = base.GetDbProviderFactory();
// Return a ProfiledDbProviderFactory from MiniProfiler
// that wraps the "base" DbProviderFactory
return new ProfiledDbProviderFactory(
MiniProfiler.Current,
baseDbProviderFactory
);
}
}
Related Posts
-
C#: Console App that Accepts Command-Line Arguments
23 Apr 2024 -
C#: How to iterate over a dictionary?
20 Apr 2024 -
C#: What is the difference between 'string' and System.String?
16 Apr 2024