<?xml version="1.0" encoding="utf-8"?>
<Type Name="LocalFileSettingsProvider" FullName="System.Configuration.LocalFileSettingsProvider">
  <TypeSignature Language="C#" Value="public class LocalFileSettingsProvider : System.Configuration.SettingsProvider, System.Configuration.IApplicationSettingsProvider" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit LocalFileSettingsProvider extends System.Configuration.SettingsProvider implements class System.Configuration.IApplicationSettingsProvider" />
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Configuration.SettingsProvider</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Configuration.IApplicationSettingsProvider</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Setting providers define a mechanism for storing configuration data used in the application settings architecture. The dnprdnshort contains a single default settings provider, <see cref="T:System.Configuration.LocalFileSettingsProvider" />, which stores configuration data to the local file system. An application settings property or group of properties are associated to a specific settings provider through the use of the <see cref="T:System.Configuration.SettingsProviderAttribute" />. </para>
      <para>Typically, the client program does not explicitly access this class; rather, the application settings architecture automatically invokes the appropriate settings provider when its services are required. For example, many of the members of <see cref="T:System.Configuration.ApplicationSettingsBase" /> delegate their work to the associated settings provider.</para>
      <para>
        <see cref="T:System.Configuration.LocalFileSettingsProvider" /> persists settings to configuration files that have the extension .config. The contents of configuration files are structured as XML documents. Depending on whether the setting is scoped at either the application-level or user-level, the configuration data is stored as elements within an &lt;applicationSettings&gt; or a &lt;userSettings&gt; section group, respectively. Each of these section groups is represented by a corresponding <see cref="T:System.Configuration.AppSettingsSection" /> or <see cref="T:System.Configuration.ClientSettingsSection" />, respectively. Each section object is owned and administered by a configuration section handler, which is an object of type <see cref="T:System.Configuration.IConfigurationSectionHandler" />.</para>
      <para>Application-scoped settings and the default user-scoped settings are stored in a file named application.exe.config, which is created in the same directory as the executable file. Application configuration settings are read-only. Specific user data is stored in a file named user.config, stored under the user's home directory. If roaming profiles are enabled, two versions of the user configuration file could exist. In such a case, the entries in the roaming version take precedence over duplicated entries in the local user configuration file.</para>
      <para>For more information about application settings, see <format type="text/html"><a href="64090a34-8556-4904-8ea0-20efe9f8c886">Application Settings for Windows Forms</a></format>.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Provides persistence for application settings classes.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public LocalFileSettingsProvider ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default constructor sets the <see cref="P:System.Configuration.LocalFileSettingsProvider.ApplicationName" /> property to <see cref="F:System.String.Empty" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Configuration.LocalFileSettingsProvider" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ApplicationName">
      <MemberSignature Language="C#" Value="public override string ApplicationName { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string ApplicationName" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Configuration.LocalFileSettingsProvider.ApplicationName" /> and <see cref="P:System.Configuration.Provider.ProviderBase.Name" /> properties help to disambiguate similarly named setting properties in different applications.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the name of the currently running application.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetPreviousVersion">
      <MemberSignature Language="C#" Value="public System.Configuration.SettingsPropertyValue GetPreviousVersion (System.Configuration.SettingsContext context, System.Configuration.SettingsProperty property);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Configuration.SettingsPropertyValue GetPreviousVersion(class System.Configuration.SettingsContext context, class System.Configuration.SettingsProperty property) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Configuration.SettingsPropertyValue</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Configuration.SettingsContext" />
        <Parameter Name="property" Type="System.Configuration.SettingsProperty" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Configuration.LocalFileSettingsProvider.GetPreviousVersion(System.Configuration.SettingsContext,System.Configuration.SettingsProperty)" /> method is often used in conjunction with the <see cref="M:System.Configuration.LocalFileSettingsProvider.Upgrade(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" /> method when migrating application settings during the installation of a new version of an application. For more information, see the <see cref="M:System.Configuration.LocalFileSettingsProvider.Upgrade(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the value of the named settings property for the previous version of the same application. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Configuration.SettingsPropertyValue" /> representing the application setting if found; otherwise, null.</para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsContext" /> that describes where the application settings property is used.</param>
        <param name="property">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Configuration.SettingsProperty" /> whose value is to be returned.</param>
      </Docs>
    </Member>
    <Member MemberName="GetPropertyValues">
      <MemberSignature Language="C#" Value="public override System.Configuration.SettingsPropertyValueCollection GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Configuration.SettingsPropertyValueCollection GetPropertyValues(class System.Configuration.SettingsContext context, class System.Configuration.SettingsPropertyCollection properties) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Configuration.SettingsPropertyValueCollection</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Configuration.SettingsContext" />
        <Parameter Name="properties" Type="System.Configuration.SettingsPropertyCollection" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Configuration.LocalFileSettingsProvider.GetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" /> method also manages the special application settings type <see cref="F:System.Configuration.SpecialSetting.ConnectionString" />. Connection strings are stored in a special section of the configuration file delimited by the element &lt;connectionstrings&gt;. </para>
          <block subset="none" type="note">
            <para>
              <see cref="T:System.Configuration.LocalFileSettingsProvider" /> does not use encryption to persist any settings. Therefore, do not store plain text passwords or other sensitive information using this provider without taking additional precautions, such as separately encrypting the information within the configuration file. For more information, see <format type="text/html"><a href="51cdfe5b-9d82-458c-94ff-c551c4f38ed1">Encrypting Configuration Information using Protected Configuration</a></format>.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the collection of setting property values for the specified application instance and settings property group.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Configuration.SettingsPropertyValueCollection" /> containing the values for the specified settings property group.</para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsContext" /> describing the current application usage.</param>
        <param name="properties">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsPropertyCollection" /> containing the settings property group whose values are to be retrieved.</param>
      </Docs>
    </Member>
    <Member MemberName="Initialize">
      <MemberSignature Language="C#" Value="public override void Initialize (string name, System.Collections.Specialized.NameValueCollection values);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void Initialize(string name, class System.Collections.Specialized.NameValueCollection values) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="values" Type="System.Collections.Specialized.NameValueCollection" />
      </Parameters>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <param name="name">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the provider.</param>
        <param name="values">
          <attribution license="cc4" from="Microsoft" modified="false" />The values for initialization.</param>
      </Docs>
    </Member>
    <Member MemberName="Reset">
      <MemberSignature Language="C#" Value="public void Reset (System.Configuration.SettingsContext context);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Reset(class System.Configuration.SettingsContext context) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Configuration.SettingsContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Configuration.LocalFileSettingsProvider.Reset(System.Configuration.SettingsContext)" /> method restores the stored values of the specified application settings group. The action of <see cref="M:System.Configuration.LocalFileSettingsProvider.Reset(System.Configuration.SettingsContext)" /> depends on the scope of the application settings property:</para>
          <list type="bullet">
            <item>
              <para>Application-scoped settings are not affected.</para>
            </item>
            <item>
              <para>User-scoped settings are reset to the default values that are stored as read-only entries in the application configuration file, application.exe.config. If roaming profiles are being used, any application settings values in the roaming profile take precedence over duplicates found in the local profile.</para>
            </item>
          </list>
          <para>Notice that if roaming profiles are used, there can be two user.config files, one for the local settings and one for the roaming profile.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Resets all application settings properties associated with the specified application to their default values.</para>
        </summary>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsContext" /> describing the current application usage.</param>
      </Docs>
    </Member>
    <Member MemberName="SetPropertyValues">
      <MemberSignature Language="C#" Value="public override void SetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection values);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void SetPropertyValues(class System.Configuration.SettingsContext context, class System.Configuration.SettingsPropertyValueCollection values) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Configuration.SettingsContext" />
        <Parameter Name="values" Type="System.Configuration.SettingsPropertyValueCollection" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A settings wrapper class, derived from <see cref="T:System.Configuration.ApplicationSettingsBase" />, contains the <see cref="M:System.Configuration.ApplicationSettingsBase.Save" /> method, which is called to persist the values of all of its settings properties. This method enumerates through all the settings providers associated with its settings properties, and calls the <see cref="M:System.Configuration.SettingsProvider.SetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyValueCollection)" /> method for each <see cref="T:System.Configuration.SettingsProvider" /> to perform the actual serialization operation.</para>
          <para>
            <see cref="M:System.Configuration.LocalFileSettingsProvider.SetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyValueCollection)" /> individually serializes each user-scoped application settings property to its corresponding application setting in the appropriate user.config configuration file.</para>
          <para>By default, the <see cref="M:System.Configuration.LocalFileSettingsProvider.SetPropertyValues(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyValueCollection)" /> method uses the following logical sequence to determine the serialization scheme, depending on type of the settings property:</para>
          <list type="ordered">
            <item>
              <para>If the type has an associated <see cref="T:System.ComponentModel.TypeConverter" /> with a <see cref="Overload:System.ComponentModel.TypeConverter.ConvertToString" /> method implementation, this conversion is used.</para>
            </item>
            <item>
              <para>XML serialization is used.</para>
            </item>
          </list>
          <para>However, you can specify a preferred serialization mechanism by using the <see cref="T:System.Configuration.SettingsSerializeAsAttribute" />. <see cref="T:System.Configuration.LocalFileSettingsProvider" /> does not support binary serialization in vsprvslong.</para>
          <para>If a user-scoped settings property is set back to its default value explicitly, then the local file settings provider will remove the entry for the associated setting from the user configuration file. The next read access for this property will simply use the default value.</para>
          <block subset="none" type="note">
            <para>
              <see cref="T:System.Configuration.LocalFileSettingsProvider" /> does not use encryption to persist any settings. Therefore, do not store plain text passwords or other sensitive information using this provider without taking additional precautions, such as separately encrypting the information within the configuration file. For more information, see <format type="text/html"><a href="51cdfe5b-9d82-458c-94ff-c551c4f38ed1">Encrypting Configuration Information using Protected Configuration</a></format>.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sets the values of the specified group of property settings.</para>
        </summary>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsContext" /> describing the current application usage.</param>
        <param name="values">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsPropertyValueCollection" /> representing the group of property settings to set.</param>
      </Docs>
    </Member>
    <Member MemberName="Upgrade">
      <MemberSignature Language="C#" Value="public void Upgrade (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Upgrade(class System.Configuration.SettingsContext context, class System.Configuration.SettingsPropertyCollection properties) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Configuration.SettingsContext" />
        <Parameter Name="properties" Type="System.Configuration.SettingsPropertyCollection" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>
            <see cref="T:System.Configuration.LocalFileSettingsProvider" /> migrates the local and roaming settings in separate operations.</para>
          <para>The <see cref="M:System.Configuration.LocalFileSettingsProvider.Upgrade(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" /> method is suppressed for every application setting that has the <see cref="T:System.Configuration.NoSettingsVersionUpgradeAttribute" /> applied to it, or to the entire settings wrapper class, derived from <see cref="T:System.Configuration.ApplicationSettingsBase" />.</para>
          <para>This way this method is called depends on the type of application that is being upgraded:</para>
          <list type="bullet">
            <item>
              <para>Each version of a ndptecclick application is stored in its own isolated installation directory. After a new version of a ndptecclick application is installed, and when the new version is first run, internal logic will automatically call <see cref="M:System.Configuration.LocalFileSettingsProvider.Upgrade(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" /> to migrate all common application settings to the new version. For more information, see <format type="text/html"><a href="891caba6-faef-4a3c-8f71-60e6fadb60eb">ClickOnce and Application Settings</a></format>. </para>
            </item>
            <item>
              <para>Standard Windows Forms and console applications must manually call <see cref="M:System.Configuration.LocalFileSettingsProvider.Upgrade(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection)" />, because there is not a general, automatic way to determine when such an application is first run. The two common ways to do this are either from the installation program or using from the application itself, using a persisted property, often named something like IsFirstRun.</para>
            </item>
          </list>
          <para>Note that for the newer version to migrate application settings, it must be able to also load and read the older version of the application settings. Therefore, it must contain wrapper classes compatible with both the new and previous versions of the application.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Attempts to migrate previous user-scoped settings from a previous version of the same application.</para>
        </summary>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsContext" /> describing the current application usage. </param>
        <param name="properties">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Configuration.SettingsPropertyCollection" /> containing the settings property group whose values are to be retrieved. </param>
      </Docs>
    </Member>
  </Members>
</Type>