@@ -14,6 +14,8 @@ public static class Config
1414 public const string VarsName = "vars.json" ;
1515
1616 public static Action < object > VarsFilter { get ; set ; } = DefaultVarsFilter ;
17+
18+ public static Func < object , string > DumpTableFilter { get ; set ; }
1719
1820 public static void DefaultVarsFilter ( object anonArgs )
1921 {
@@ -34,7 +36,7 @@ public static void DefaultVarsFilter(object anonArgs)
3436 }
3537 catch ( Exception ex )
3638 {
37- Tracer . Instance . WriteError ( "Inspect.Vars () Error: " + ex ) ;
39+ Tracer . Instance . WriteError ( "Inspect.vars () Error: " + ex ) ;
3840 }
3941 }
4042 }
@@ -45,5 +47,27 @@ public static void DefaultVarsFilter(object anonArgs)
4547 /// <param name="anonArgs">Anonymous object with named value</param>
4648 // ReSharper disable once InconsistentNaming
4749 public static void vars ( object anonArgs ) => Config . VarsFilter ? . Invoke ( anonArgs ) ;
50+
51+ /// <summary>
52+ /// Recursively prints the contents of any POCO object in a human-friendly, readable format
53+ /// </summary>
54+ public static string dump < T > ( this T instance ) => instance . Dump ( ) ;
55+
56+ /// <summary>
57+ /// Print Dump to Console.WriteLine
58+ /// </summary>
59+ public static void printDump < T > ( this T instance ) => instance . PrintDump ( ) ;
60+
61+ /// <summary>
62+ /// Dump object in Ascii Markdown table
63+ /// </summary>
64+ public static string dumpTable ( object instance ) => Config . DumpTableFilter != null
65+ ? Config . DumpTableFilter ( instance )
66+ : throw new NotImplementedException ( "Config.DumpTableFilter is not configured, call JS.Configure()" ) ;
67+
68+ /// <summary>
69+ /// Print Dump object in Ascii Markdown table
70+ /// </summary>
71+ public static void printDumpTable ( this object target ) => PclExport . Instance . WriteLine ( dumpTable ( target ) ) ;
4872 }
4973}
0 commit comments