What you described is what I thought should happen too, but it doesn't.
In visual studio created a C# Windows Application and changed Form1.cs to this:
public A(string n)
name = n;
public B b;
public partial class Form1 : Form
A a1 = new A("a1");
A a2 = new A("a2");
A a3 = new A("a3");
A a4 = new A("a4");
A a5 = new A("a5");
a3.b = new B();
Then followed these steps:
* Run this app with the memory profiler
* Capture a snapshot
* Go to the class view
* Select the 'B' class and go to the instance view
* There should only be one instance, select it and go to the object retention graph
* There is an A object referencing the B instance. Select the A object, right click and choose ' Show object retention graph for this A'.
* Now, press on the 'Instance List' button to switch back to that view.
=> No row seems to be selected. The top row has the '+' icon to the left of the class name. I don't think that means that row is selected though. If I press on the + to see the properties of that instance, it says it's name is "a1".
=> The instance that should be referencing the B instance should have "a3" as its name. I don't appear to be able to find this information from ANTS memory profiler.
Any further help would be appreciated.