File: UI\WebParts\ITrackingPersonalizable.cs
Project: ndp\fx\src\xsp\system\Web\System.Web.csproj (System.Web)
//------------------------------------------------------------------------------
// <copyright file="ITrackingPersonalizable.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------
 
namespace System.Web.UI.WebControls.WebParts {
 
    using System;
 
    /// <devdoc>
    /// Allows an object to track the personalization process,
    /// in terms of both loading and saving state, as well as
    /// optionally taking over tracking changes to personalized properties.
    /// </devdoc>
    public interface ITrackingPersonalizable {
 
        /// <devdoc>
        /// Indicates whether the object tracks its own changes. If so, it should return
        /// true. Otherwise it should return false, and the framework will perform a diff
        /// to determine if the object's personalization state has changed from its
        /// initial values.
        /// </devdoc>
        bool TracksChanges {
            get;
        }
 
        /// <devdoc>
        /// Called before personalization data is loaded into the object.
        /// An object that tracks changes should suspend its tracking during the load process.
        /// </devdoc>
        void BeginLoad();
 
        /// <devdoc>
        /// Called before personalization data is saved from the object.
        /// </devdoc>
        void BeginSave();
 
        /// <devdoc>
        /// Called after all the personalization data has been loaded into the object.
        /// </devdoc>
        void EndLoad();
 
        /// <devdoc>
        /// Called after all the personalization data has been saved from the object.
        /// </devdoc>
        void EndSave();
    }
}