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