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); } }