一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改
Web.config的读取对于Web.config的读取大家都很属性了。平时我们用得比较多的就是appSettings节点下配置。如: 我们对应的代码是: ======
?是的,很简单、很方便、很清晰。可以总感觉缺少那么一点“面向对象”的感觉。少还无所谓,如果几十个上百个呢?我们是不是可以考虑分类定义,如下: ?可是,你会发现??编辑器不认,因为这是我自己定义的一个,那如何是好?如下:() 如此,是不是感觉分类更清楚了?可是问题又来了,那我们怎么读取自定义标签里面的值呢? 首先:()
[ConfigurationProperty(,IsRequired = { (MailElement)[
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> qq登录
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
[ConfigurationProperty(<span style="color: #800000;">"</span><span style="color: #800000;">oAuthQQ</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> OAuthQQElement OAuthQQ
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> (OAuthQQElement)<span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">oAuthQQ</span><span style="color: #800000;">"</span><span style="color: #000000;">]; }
}
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> 新浪登录
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
[ConfigurationProperty(<span style="color: #800000;">"</span><span style="color: #800000;">oAuthSina</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> OAuthSinaElement OAuthSina
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> (OAuthSinaElement)<span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">oAuthSina</span><span style="color: #800000;">"</span><span style="color: #000000;">]; }
}
}</span>?</pre>
然后MailElement、OAuthQQElement、OAuthSinaElement 分别具体定义: MailElement(邮箱)
[ConfigurationProperty(,IsRequired = { [ { [] =
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> SMTP邮件服务器
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
[ConfigurationProperty(<span style="color: #800000;">"</span><span style="color: #800000;">mailHost</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> Host
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">mailHost</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">mailHost</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;">发件人邮箱
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
[ConfigurationProperty(<span style="color: #800000;">"</span><span style="color: #800000;">mailFrom</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> From
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">mailFrom</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">mailFrom</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
}
</span><span style="color: #0000ff;">#endregion</span>
<span style="color: #0000ff;">#region</span> OAuthQQElement(QQ)
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> OAuthQQElement : ConfigurationElement
{
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientId</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> ClientId
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientId</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientId</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientScrert</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> ClientScrert
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientScrert</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_ClientScrert</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_CallbackUrl</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> CallbackUrl
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_CallbackUrl</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_QQ_CallbackUrl</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
}
</span><span style="color: #0000ff;">#endregion</span>
<span style="color: #0000ff;">#region</span> OAuthSinaElement(新浪)
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> OAuthSinaElement : ConfigurationElement
{
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientId</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> ClientId
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientId</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientId</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientScrert</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> ClientScrert
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientScrert</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_ClientScrert</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
[ConfigurationProperty(</span><span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_CallbackUrl</span><span style="color: #800000;">"</span>,IsRequired = <span style="color: #0000ff;">true</span><span style="color: #000000;">)]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> CallbackUrl
{
</span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_CallbackUrl</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); }
</span><span style="color: #0000ff;">set</span> { <span style="color: #0000ff;">this</span>[<span style="color: #800000;">"</span><span style="color: #800000;">OAuth_Sina_CallbackUrl</span><span style="color: #800000;">"</span>] =<span style="color: #000000;"> value; }
}
}
</span><span style="color: #0000ff;">#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默认的连接对象)?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 用于电话号码或社会安全号码的DisplayForma
- ASP文本框CSS和数据绑定表达式问题
- asp.net – 使用URL Rewrite和404.aspx时的回发问题
- asp.net-mvc – ASP.net MVC – 我可以告诉Html.Partial在哪
- asp.net-core-2.1 – 配置HttpClientFactory以使用当前请求
- asp.net-mvc-3 – 如何强制MVC查看错误以使项目编译失败?
- asp.net-mvc-3 – MVC3中的富文本区域
- asp.net – 如何提取与Outlook正在显示的employeeID属性值相
- 在razorview中显示checkboxfor的文本
- asp.net – 为什么IIS Express使用而不是?