博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置节的注意事项
阅读量:6201 次
发布时间:2019-06-21

本文共 2177 字,大约阅读时间需要 7 分钟。

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

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

Myapp.exe.config

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

<configuration

         xmlns=>

<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"]);   }

    }

}

转载地址:http://yttca.baihongyu.com/

你可能感兴趣的文章
记录一则expdp任务异常处理案例
查看>>
[转]Illuminate Database
查看>>
echarts的地图点击事件
查看>>
C# 在PPT中绘制形状(shape)
查看>>
初探APT攻击
查看>>
Spring的Task任务
查看>>
ClassLoader家族
查看>>
C# 多线程九之Timer类
查看>>
spring注解@Scheduled中fixedDelay、fixedRate和cron表达式的区别
查看>>
centos 修改主机名
查看>>
Java访问子类对象的实例变量
查看>>
About Realtime Radiosity
查看>>
Tips on GORM, Avoid Error about "duplicate column name: id"
查看>>
[CF.Skills]防止Smartphone进入休眠状态
查看>>
CGI编程学习3 加法计算
查看>>
MVC文章汇总
查看>>
郁闷的一次调优
查看>>
POJ 3096 Surprising Strings
查看>>
[置顶] css3 befor after 简单使用 制作时尚焦点图相框
查看>>
ListView 滚动条的图标样式
查看>>