Суть вопроса в следующем:
У меня есть два объекта одного класса
public class TreeItem
{
TreeItem _Parent;
protected List<TreeItem> _Children = new List<TreeItem>();
}
public class Prj : TreeItem
{
...
}
public class Obj : TreeItem
{
...
}
Создавая дерево Obj мне нужно хранить этиже объекты в дереве Prj, но тут появляется одна загвоздка — _Parent. Поменять _Parent я могу только в другом объекте (делать клон объекта это тупиковый путь, потом нужно искать одинаковые и т.д.). ЛИБО сделать класс котрый бы подсовывал _Parent для другого дерева.
ОБОБЩЕНИЕ ПРОБЛЕМЫ:
Если обобщить, то нужно сделать один объект для множеста деревьев. В результате сборщик мусора удолит объект тогда, когда объект удалится с каждого дерева (эта мысль была на этапе проектирования).
Надеюсь понятно описал.