public void ActivateAspects(UnmarshallingContext context)
        {
            BooleanByRef           schemaUpdateDetected = new BooleanByRef();
            ContextState           savedState           = context.SaveState();
            ITraverseAspectCommand command = new _MarshallingInfoTraverseAspectCommand_63(context
                                                                                          , schemaUpdateDetected, EnsureFieldList(context));

            // TODO: cant the aspect handle it itself?
            // Probably no because old aspect versions might not be able
            // to handle null...
            TraverseAllAspects(context, command);
            if (schemaUpdateDetected.value)
            {
                context.RestoreState(savedState);
                command = new _MarshallingInfoTraverseAspectCommand_94(context, EnsureFieldList(context
                                                                                                ));
                TraverseAllAspects(context, command);
            }
        }