// how to invoke it
 static int Main()
 {
     // invoke it, this is lightning fast and the first-time cache will be arranged
     // also, no need to give the full method anymore, just the classname, as we
     // use an interface for the rest. Almost full type safety!
     ICalculate instanceOfCalculator = this.CreateCachableICalculate("RandomNumber");
     int        result = instanceOfCalculator.ExecuteCalculation();
 }