Problem getting DumpContainer.DumpDepth working
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