public void VisitRoot(IContainerTypeTreeVisitor visitor) { var context = new ContainerTypeTreePath() { Namespace = this.TypePath.Namespace, TypePath = new Stack <string>(new[] { this.TypeName }) }; visitor.VisitContainer(context, this); Visit(context, visitor); }
public void Visit(ContainerTypeTreePath path, IContainerTypeTreeVisitor visitor) { path.TypePath.Push(TypeName); visitor.VisitNestedContainer(path, this); foreach (var t in NestedContainers) { t.Visit(path, visitor); } path.TypePath.Pop(); }