// Helper method used by CopyPersonalizationState() private PersonalizationInfo ExtractPersonalizationState(Control control) { ITrackingPersonalizable trackingPersonalizable = control as ITrackingPersonalizable; IPersonalizable customPersonalizable = control as IPersonalizable; if (trackingPersonalizable != null) { trackingPersonalizable.BeginSave(); } PersonalizationInfo info = new PersonalizationInfo(); if (customPersonalizable != null) { info.CustomProperties = new PersonalizationDictionary(); customPersonalizable.Save(info.CustomProperties); } info.Properties = BlobPersonalizationState.GetPersonalizedProperties(control, PersonalizationScope.Shared); if (trackingPersonalizable != null) { trackingPersonalizable.EndSave(); } return(info); }