配置节的注意事项

        可以使用配置节避免以上两个问题。配置节是一个配置参数的集合。每一个参数要么定义在应用程序级,要么定义在执行该应用程序的Windows用户级。因此可以简单的使用该机制保存每个用户的偏好。

        下面的配置文件定义了一个MySettings 的配置节,该节包含了一个名为MyIntUser的用户配置参数与一个名为MyIntApp的应用程序配置参数。

Myapp.exe.config

<?xml version="1.0" encoding="utf-8" ?>

<configuration

         xmlns=http://schemas.microsoft.com/.netconfiguration/v2.0>

<configSections>

     <sectionGroup name="userSettings"

                              type="system.configuration.userSettingsGroup,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089">

    <section name="MySettings"

                  type="System.Configuration.ClientSettingSection,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"

                  allowExeDefinition="MachineToLocalUser" />

    </sectionGroup>

    <sectionGroup name="applicationSettings"

type="System.Configuration.ClientSettingSection,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"

                  allowExeDefinition="MachineToLocalUser" />

      

    <section name="MySettings"

                  type="System.Configuration.ClientSettingSection,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"

                  allowExeDefinition="MachineToLocalUser" />

    </sectionGroup>

</configSections>

<userSettings>

  <MySetting>

    <setting name="MyIntUr" serializaAs="String"><value>1234</value>

    </setting>

  </MySetting>

<userSettings>

<applicationSettings>

     <mySetting>

         <setting name="MyIntApp" serializaAs="String">

                <value>4321</value>

         </setting>

    </mySetting>

  </applicationSettings>

</configuration>

下面是相应的Myapp应用程序代码。我们可以看到,通过引入一个名为MySettings的System。Configuration.ApplicationSettingsBasexu继承类,前一个例子中的两个问题得到解决。我们将这样的一个类称为配置节句柄。该类为每个参数提供一个属性。与用户参数相关的属性被标上了UserScopedSettingAttribute,而与应用程序参数相关的属性被标上了ApplicationScopedSettingAttribugte.我们注意到MyIntApp属性并没有Set访问器。事实上,在这种技术中应用程序参数被视为只读的。

例:

using System.Configuration;

class Program{

     static void main()

     {

               Mysettings mySettings=new MySecttings();

               int MyIntUsr=mySetting.MyIntUsr;

               System.ConsoleWriteLine(myIntUsr);

               myIntUsr*=10;

               mySettings.MyIntUsr=myIntUsr;

               mySettings.Save();

               System.Console.WriteLine(mySettings.MyIntApp);

     }

}

class MySettings :ApplicationSettingsBase

{

   [UserScopedSetting()]

   public int MyIntUsr

   {

          get{  return  (int)(this["MyIntUsr"]); }

          set{  this["MyIntUsr"]=value;  }

    }

  [ApplicationScopedSetting()]

   public int MyIntApp

   {

          get {  return (int) (this["MyIntApp"]);   }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值