Connections strings to config

I have the opportunity to work on some pretty old code . There were many projects , all that had a sort of connection string to the database.  This kind of code were in like > 11 places :

string connectionstring = “Data Source=.\\SqlServer;Initial Catalog=myDB;Integrated Security=SSPI;”;

The task was to modify this in something that could read from a config ( json) file . But more than that, was to verify
1.that is called everywhere – because sometimes it were in methods, other time in a static variable and so on .
2. that the json exists or not ( if not return the default string – but log the fact that are not in the settings)

So – how to monitor that your code is actually hit ? One idea is to make breakpoints. Other is to make a class:

So I came up with this class

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class ConnectionSql
{
public ConnectionSql(
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
 
Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
}
//TODO: if need speed, make this static - or strConnection...
public string ConnectionString()
{
var strConnection = ConfigurationManager.AppSettings["sql"];
if (string.IsNullOrWhiteSpace(strConnection))
{
Console.WriteLine("not found connection sql string in settings , going to default");
strConnection = ".\\SqlServer;Initial Catalog=myDB;Integrated Security=SSPI;";
}
return strConnection;
 
}
 
}

 

How we call ?

1
string connectionstring = new ConnectionSql().ConnectionString();

 

Because of the attributes https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/caller-information we can figure by looking at the trace if the code was hit or not and by which line.