OK, I just figured out my problem. First I'll say, it's nothing you guys missed ... rather, it was my lack of posting complete code as there was simply too much to keep it simple. Here's the problem in the constructor of a SuperGroup():
[Serializable]
public sealed class SuperGroupObject : GroupCadObject
{
CadPage cadPage;
public SuperGroup( CadPage cadPage )
{
this.cadPage = cadPage;
}
...
For reasons I won't go into detail about, it's necessary for the SuperGroup to be aware of its owning CadPage ... there's some information that must flow up hill to the owning page.
As you can see, therein lies the mysterious linkage to the CadPage. Even though I wasn't trying to directly serialize the SuperGroup ( rather, just members in its list of BaseCadObjects ), apparently the connection spills through because SuperGroup is ultimately derived from a BaseCadObject.
To fix the problem, it requires this:
[Serializable]
public sealed class SuperGroupObject : GroupCadObject
{
[Nonserialize]
CadPage cadPage;
public SuperGroup( CadPage cadPage )
{
this.cadPage = cadPage;
}
...
I humbly eat my crow.
Thanks for you time and consideration.