How To Clone an ASP Menu Control's MenuItems

I created a class that manages the creation of all MenuItems to a Menu Object.  Once my class finishes, it returns a single MenuItem reference (which I call ROOT), under which all other MenuItems are attached.  I store this object reference using a Session Variable so that I can access it through my Web Application.  In the header portion of my MasterPage, I placed code that takes the Session Menu Reference, and looks at each of the ROOT's ChildItems, and attaches them to it's Menu control.  I was hoping that this way, I have one prebuilt master menu tree structure, that all pages can just use when they load.  Here is my problem...When I .Add() the ChildItem from ROOT to the current pages Menu Object, it physically changes the parent reference on the ChildMenuItem to the ne Menu object, thereby literally ripping it off ROOT.  I tried creating a method where I passed ROOT ByVal in the hopes it would create a copy rather then use a reference, no luck.  I looked for a Clone() method on the MenuItems object, no such luck there either.

Somehow I need to create a clone of ROOT, so that when I rip off each ChildItem, I don't actually disturb the original MenuTemplate ROOT in memory, so that when the use navigates to a new page, the new page can access the original ROOT menu object and rebuild the menu again.

Any ideas?

So far, the only option I can see (which I am not fond of) is creating my own Clone() method in my class which manually creates a copy of the entire tree structure of the ROOT object...
Ben SantiardoAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

_Stilgar_Commented:
You should have posted this under .NET regions, not ASP classic.

Anyway, this seems like you need to override Clone() and implement your own logic, correct. That's fairly simple, though...
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ben SantiardoAuthor Commented:
Oh sorry, being that it was an ASP Control I figured this was the right section.  My mistake...I just created a method that recursively traverses the MenuItem Tree and creates a new MenuItem tree.  It was the only way I could see getting this to work.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.