zhaohz

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
App.config 两种版本读取方式(appSettings 和 applicationSettings 的区别
 
ApplicationSettings是.net 2.0之后出现的,appSettings是.net 1.1的方式. 其实.net 2.0之后两个都可以用
 
方式一:.net2.0 之前 appSettings
 xml 内容:
  <connectionStrings>
    <add name=" connString " connectionString="Data Source=127.0.0.1;Initial Catalog=test;User ID=sa;Password=123" />
  </connectionStrings>
  <appSettings>
    <add key=" logpath " value="d:\test.txt"/>
  </appSettings>
 
读取方式:
string sConnectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
string sPath = ConfigurationManager.AppSettings["logpath"]
 
VS2005中用第一种读取方式,需要手动添加app.config内容(appSettings字段),
而且使用ConfigurationManager时要加上 using System.Configuration; 同时添加System.Configuration.dll引用
还有一点就是应用程序目录必须存在MyProject.exe.config文件,否则exe会打不开!
 
方式二: .net2.0之后 applicationSettings
 xml 内容(参数直接在 Project->  Properties ->Settings界面设置,更方便):
    <connectionStrings>
    <add name="MyProject.Properties.Settings.connstring" connectionString="Data Source=127.0.0.1;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=123"
      providerName="System.Data.SqlClient" />
    </connectionStrings>
    <applicationSettings>
        <MyProject .Properties.Settings>
            <setting name="WebSrv" serializeAs="String">
                <value>http://localhost/MyWebSrv/Service.asmx</value>
            </setting>
        </ MyProject .Properties.Settings>
    </applicationSettings>
    <userSettings>
        <MyProject .Properties.Settings>
            <setting name=" LogPath" serializeAs="String">
                <value>D:\\log.txt</value>
            </setting>
        </ MyProject .Properties.Settings>
    </userSettings>
 
读取方式:
 string sConnectionString = MyProject .Properties.Settings.Default. connString;
 string sUrl =  MyProject .Properties.Settings.Default. WebSrv ;    
 string sPat  = MyProject .Properties.Settings.Default.LogPath;  
 
使用第二种方式的优点是直接可以在Settings界面中编辑内容,还可以构建和测试connectionString字段, 参数配置更直观.
应用程序目录不必一定要有MyProject.exe.config文件,如果没有该文件,读出的值是编译时设置的值,否则读取该文件中的值.
posted on 2013-10-31 09:58  zzhaoh  阅读(1341)  评论(0编辑  收藏  举报