Problem getting DumpContainer.DumpDepth working
Options
I have problem understandig how DumpDepth is supposed to be use, see comments in code below
using LINQPad.Controls; void Main() { var aaa = new AAA(new AA(new A(1, 2), new A(3, 4)), new AA(new A(5, 6), new A(7, 8))); var bbb = new BBB(new AA(new A(1, 2), new A(3, 4)), new AA(new A(5, 6), new A(7, 8))); //aaa.Dump("aa",depth: 2); // works (dump 2 levelt) var dc = new DumpContainer(aaa); //dc.DumpDepth = 1; // apparently no effect dc.Dump("dc"); // (dump all 3 levels) dc.DumpDepth = 1; // apparently no effect bbb.Dump(); } class AAA { public AAA(AA aA1, AA aA2) { AA1 = aA1; AA2 = aA2; } public AA AA1 { get; } public AA AA2 { get; } } class BBB { private AA aA1; private AA aA2; public BBB(AA aA1, AA aA2) { this.aA1 = aA1; this.aA2 = aA2; } public object Expanded { get { var dc = new DumpContainer(); Update(false); void Update(bool expand) { dc.Content = new Hyperlink("BB",_ => Update(!expand)); if (expand) { // 2 additional levels dumped to a total of 3 dc.DumpDepth = 3; // apparently no effect dc.AppendContent(new AAA(aA1,aA2)); //dc.DumpDepth = 3; // apparently no effect } } return dc; } } } class AA { public AA(A a1, A a2) { A1 = a1; A2 = a2; } public A A1 { get; } public A A2 { get; } } class A { public A(int v1, int v2) { V1 = v1; V2 = v2; } public int V1 { get; } public int V2 { get; } }
Comments
-
Try dc.Refresh();?
dc.DumpDepth = 3; dc.Refresh();
-
works only for the first case where AAA is dumped in Main() i.e.
dc.DumpDepth = 1; dc.Refresh();
but NOT for the second case where where another AAA is dumped when the hyperlink BB is pressed