加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改

发布时间:2020-12-15 21:25:17 所属栏目:asp.Net 来源:网络整理
导读:Web.config的读取 对于Web.config的读取大家都很属性了。平时我们用得比较多的就是appSettings节点下配置。如: 我们对应的代码是: = = = = = = ?是的,很简单、很方便、很清晰。可以总感觉缺少那么一点“面向对象”的感觉。少还无所谓,如果几十个上百个呢

Web.config的读取

对于Web.config的读取大家都很属性了。平时我们用得比较多的就是appSettings节点下配置。如:

我们对应的代码是:

======

?是的,很简单、很方便、很清晰。可以总感觉缺少那么一点“面向对象”的感觉。少还无所谓,如果几十个上百个呢?我们是不是可以考虑分类定义,如下:

?可是,你会发现??编辑器不认,因为这是我自己定义的一个,那如何是好?如下:(

如此,是不是感觉分类更清楚了?可是问题又来了,那我们怎么读取自定义标签里面的值呢?

首先:(

[ConfigurationProperty(,IsRequired = { (MailElement)[ </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;<summary></span> <span style="color: #808080;"&gt;///</span><span style="color: #008000;"&gt; qq登录 </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;</summary></span> [ConfigurationProperty(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;oAuthQQ</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span><span style="color: #000000;"&gt; OAuthQQElement OAuthQQ { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> (OAuthQQElement)<span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;oAuthQQ</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;]; } } </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;<summary></span> <span style="color: #808080;"&gt;///</span><span style="color: #008000;"&gt; 新浪登录 </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;</summary></span> [ConfigurationProperty(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;oAuthSina</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span><span style="color: #000000;"&gt; OAuthSinaElement OAuthSina { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> (OAuthSinaElement)<span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;oAuthSina</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;]; } } }</span>?</pre>

然后MailElement、OAuthQQElement、OAuthSinaElement 分别具体定义:

MailElement(邮箱) [ConfigurationProperty(,IsRequired = { [ { [] = </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;<summary></span> <span style="color: #808080;"&gt;///</span><span style="color: #008000;"&gt; SMTP邮件服务器 </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;</summary></span> [ConfigurationProperty(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailHost</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; Host { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailHost</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailHost</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;<summary></span> <span style="color: #808080;"&gt;///</span><span style="color: #008000;"&gt;发件人邮箱 </span><span style="color: #808080;"&gt;///</span> <span style="color: #808080;"&gt;</summary></span> [ConfigurationProperty(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailFrom</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; From { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailFrom</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;mailFrom</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } } </span><span style="color: #0000ff;"&gt;#endregion</span> <span style="color: #0000ff;"&gt;#region</span> OAuthQQElement(QQ) <span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;class</span><span style="color: #000000;"&gt; OAuthQQElement : ConfigurationElement { [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientId</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; ClientId { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientId</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientId</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientScrert</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; ClientScrert { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientScrert</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_ClientScrert</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_CallbackUrl</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; CallbackUrl { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_CallbackUrl</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_QQ_CallbackUrl</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } } </span><span style="color: #0000ff;"&gt;#endregion</span> <span style="color: #0000ff;"&gt;#region</span> OAuthSinaElement(新浪) <span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;class</span><span style="color: #000000;"&gt; OAuthSinaElement : ConfigurationElement { [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientId</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; ClientId { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientId</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientId</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientScrert</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; ClientScrert { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientScrert</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_ClientScrert</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } [ConfigurationProperty(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_CallbackUrl</span><span style="color: #800000;"&gt;"</span>,IsRequired = <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;)] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; CallbackUrl { </span><span style="color: #0000ff;"&gt;get</span> { <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_CallbackUrl</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;].ToString(); } </span><span style="color: #0000ff;"&gt;set</span> { <span style="color: #0000ff;"&gt;this</span>[<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;OAuth_Sina_CallbackUrl</span><span style="color: #800000;"&gt;"</span>] =<span style="color: #000000;"&gt; value; } } } </span><span style="color: #0000ff;"&gt;#endregion</span></pre>

到现在为止,我们在代码层面已经建立和config一一对应的关联了。下面我们来取值:

CustomCon custom = (CustomCon)ConfigurationManager.GetSection( url = custom.OAuthQQ.CallbackUrl; id = custom.OAuthQQ.ClientId;

如此是不是甚爽,比原先的??更有“对象”的感觉了吧。且,当你配置过多的时候分类也更加清晰!

Web.config的写入

?对于Web.config的写入需求一般很少,多数都只是读取。那为什么我这里要说写入呢?因为好多人问我“这个博客系统的数据库在哪里?”,每次都解释的'不亦乐乎',"这个是coder first根据代码生成数据库",后来次数多了实在受不了了。考虑着,是否可以做个引导页面,初次使用的时候提示设置数据库和邮箱什么的()。

第一次启动程序的时候检查数据库连接,没有就进入引导页面,设置。(

好了,看了上面的效果图我们继续来看是怎么把数据写入到Web.config文件的吧。

其实很简单,稍微改下上面代码:

改成通过??来读取代码就可以编辑了。不过不要忘了??才会真正更新到Web.config里面去。

到这里还只能修改我们自定义的节点数据。我们最最主要的是想更新数据库连接,请看下面对数据库连接的操作:

SetConnectionString( key, connectionString, providerName = = (ConnectionStringsSection)config.GetSection( (connectionSetting.ConnectionStrings[key] == ) = ==

其实,细看和我们上面的代码大同小异。(?.net默认的连接对象)?

《》

好了,以上都是胡说八道。

主要是说下思路,大家自由发挥。感谢您的阅读,希望对您有一点点作用!

文章首链:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读