Web.config文件中</appSettings>节点的配置数值读取的2种方法,哪种更快?

博客介绍了读取配置节点数值的两种方法。方法一利用ConfigurationSettings.AppSettings属性,书写简单,是常用方法;方法二先创建AppSettingsReader类实例,再用实例方法GetValue获取数值。还对两种方法的速度及适用场景进行了讨论。


<appSettings>
 <add key="dsn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\data.mdb"/>
 <add key="my1" value="119"/>
</appSettings>

1。方法一
string conString1=System.Configuration.ConfigurationSettings.AppSettings["dsn"];

此方法是利用ConfigurationSettings.AppSettings属性(静态属性)
这也是我们用的最多的方法

2。方法二
System.Configuration.AppSettingsReader appReader=new System.Configuration.AppSettingsReader();
string conString2=Convert.ToString(appReader.GetValue("my1",typeof(string)));

此方法首先创建AppSettingsReader类的一个实例,再利用实例方法GetValue得到配置节点的数值


这2种方法那种快呢?
方法一在书写上简单明朗。
方法二写法稍微多些,我个人认为要是一次读取多个配置点的数值,可以考虑方法二。
方法一利用的是静态属性,IL会把静态属性转换为静态方法的。

 

 

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <!-- 编译目标框架 --> <compilation debug="true" targetFramework="4.0" /> <!-- 增加 ASP.NET 请求限制:50MB --> <httpRuntime maxRequestLength="51200" executionTimeout="3600" useFullyQualifiedRedirectUrl="false" /> <pages controlRenderingCompatibilityVersion="4.0" /> <!-- 启用 Web Services 协议 --> <webServices> <protocols> <add name="HttpSoap" /> <add name="HttpPost" /> <add name="HttpGet" /> <add name="Documentation" /> </protocols> </webServices> </system.web> <!-- IIS 设置 --> <system.webServer> <!-- CORS 跨域设置 --> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" /> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" /> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> <!-- 关键!IIS 层最大请求内容长度(单位:字节)--> <!-- 50MB = 52,428,800 字节 --> <security> <requestFiltering> <requestLimits maxAllowedContentLength="52428800" /> </requestFiltering> </security> <!-- 确保启用运行时环境 --> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer> <!-- 据库连接字符串 --> <connectionStrings> <add name="_Default" connectionString="data source=ORCL;uid=sst_user;pwd=123;" providerName="System.Data.OracleClient" /> </connectionStrings> <!-- 应用设置 --> <appSettings> <add key="SqlPath" value="d:\" /> <add key="DefaultSqlXmlFileName" value="Sqls" /> <add key="DBWriteLog" value="false" /> <add key="DBLogFill" value="false" /> <add key="DBLogExec" value="false" /> <add key="DBLogUpdate" value="false" /> <add key="CompareAllValuesWhenUpdate" value="false" /> <add key="UnifiedParamPrefix" value="^" /> <add key="BlobFilePath" value="Files\" /> <add key="HisBlobFilePath" value="Backup\" /> </appSettings> <!-- WCF 核心配置 --> <system.serviceModel> <bindings> <basicHttpBinding> <!-- 命名绑定:BasicHttpBinding --> <binding name="BasicHttpBinding" closeTimeout="00:59:59" openTimeout="00:59:59" receiveTimeout="00:59:59" sendTimeout="00:59:59" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="52428800" maxBufferPoolSize="52428800" maxReceivedMessageSize="52428800" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <!-- 读取器配额必须与消息大小匹配 --> <readerQuotas maxDepth="32" maxStringContentLength="52428800" maxArrayLength="52428800" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <!-- 安全设置:无认证 --> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <!-- 主要行为 --> <behavior name="WCFServerCABehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> <!-- 提高序列化图限制 --> <dataContractSerializer maxItemsInObjectGraph="2147483647"/> </behavior> <!-- 默认空行为(建议命名) --> <behavior name="EmptyBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> <dataContractSerializer maxItemsInObjectGraph="2147483647"/> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> <!-- 服务定义 --> <services> <service behaviorConfiguration="WCFServerCABehavior" name="HY.Application.Service.Edf.EdfService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="HY.Application.API.Edf.IEdfService" /> </service> <service behaviorConfiguration="WCFServerCABehavior" name="HY.Application.Service.Edf.BaseService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="HY.Application.API.Edf.IBaseService" /> </service> <service behaviorConfiguration="WCFServerCABehavior" name="HY.Application.Service.Edf.CnasService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="HY.Application.API.Edf.ICnasService" /> </service> <service behaviorConfiguration="WCFServerCABehavior" name="HY.Application.Service.Sst.SstService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="HY.Application.API.Sst.ISstService" /> </service> </services> </system.serviceModel> </configuration> 这么改完还是报错413
最新发布
12-19
<?xml version=“1.0” encoding=“utf-8”?> <configuration> <configSections> <section name=“connectionSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“communicationSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“packageSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“sessionSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“analyticsSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“webProxySettings” type=“System.Configuration.AppSettingsSection” /> <section name=“robotCacheSettings” type=“System.Configuration.AppSettingsSection” /> <section name=“robotJsSettings” type=“System.Configuration.AppSettingsSection” /> </configSections> <connectionSettings> <add key=“defaultServiceUrl” value=“https://cloud.uipath.com” /> </connectionSettings> <communicationSettings> <add key=“maxMessageSizeInMegabytes” value=“1” /> <add key=“installPackageTimeout” value=“00:20:00” /> <add key=“requestTimeout” value=“00:00:40” /> </communicationSettings> <packageSettings> <add key=“disableSecureXaml” value=“False” /> </packageSettings> <sessionSettings /> <analyticsSettings> <add key=“Telemetry.Enabled” value=“True” /> </analyticsSettings> <webProxySettings /> <robotCacheSettings /> <robotJsSettings /> </configuration>C#如何读取这个配置文件里的内容
03-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值