The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers with rich code analysis APIs.
var btnYes = ControlFactory.Create<Button>(); //the method has know that the assigment expr is 'btnYes' so give it to the Name porperty
Foo(ControlFactory.Create<Button>())
Dictionary<(string filePath, int lineNumber), string>