I need to discover the names C# is using for component instances, both during design and run. The Designer assigns names, and the programmer can alter them during design, but the effect is to add names in the code. Since Component classes do not have a 'Name' property as such, it is unclear if there is any way to find out what the 'name' of the object is.
For the record, the reason I need this is for error control at design time. I have components which can be linked in a heirarchy by setting a property in one to point to another. So, Component1 may be the 'parent' of Component2 and so on down the chain, but it should not be legal for the chain to form a loop. If the programmer should happen to create a circular chain, I need to report the problem and list the names of the components forming the chain. And, since C# components don't seem to have a Name property, I can't return a meaningful error.