File: sys\system\configuration\IApplicationSettingsProvider.cs
Project: ndp\fx\src\System.csproj (System)
//------------------------------------------------------------------------------
// <copyright file="IApplicationSettingsProvider.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------
 
namespace System.Configuration {
 
    using System.Security.Permissions;
 
    /// <devdoc>
    ///     This interface is an extension to SettingsProvider that a provider can implement
    ///     to support additional functionality for settings classes that derive from ApplicationSettingsBase.
    /// </devdoc>
    public interface IApplicationSettingsProvider {
        /// <devdoc>
        ///    Retrieves the previous value of a given SettingsProperty. This is used in conjunction with Upgrade.
        /// </devdoc>
        [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
        SettingsPropertyValue GetPreviousVersion(SettingsContext context, SettingsProperty property);
 
        /// <devdoc>
        ///     Resets all settings to their "default" values.      
        /// </devdoc>
        [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
        void Reset(SettingsContext context);
 
        /// <devdoc>
        ///    Indicates to the provider that the app has been upgraded. This is a chance for the provider to upgrade
        ///    its stored settings as appropriate.
        /// </devdoc>
        [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
        void Upgrade(SettingsContext context, SettingsPropertyCollection properties);
    }
}