asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Web.config的读取

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

title="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" alt="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" src="https://cn.js-code.com/res/2019/02-07/23/8961752ec750d8680e5272ecf024db9f.png" >

我们对应的代码是:

=Tings[“OAuth_QQ_ClientId”]; =Tings[“OAuth_QQ_CallBACkUrl”]; =Tings[“OAuth_QQ_ClientScrert”]; =Tings[“OAuth_Sina_ClientId”]; =Tings[“OAuth_Sina_ClientScrert”]; =Tings[“OAuth_Sina_CallBACkUrl”]; ........

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

tomcaton BACkUrl BACkUrl tomcaton

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

title="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" alt="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" src="https://cn.js-code.com/res/2019/02-07/23/5129083948f4d814e4886de014054d87.png" >

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

首先:(

tomcaton : ConfigurationSection { [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 分别具体定义:

https://cn.js-code.com/res/2019/02-07/23/1c53668bcee393edac0d7b3b3daff1ae.gif" alt="">https://cn.js-code.com/res/2019/02-07/23/405b18b4b6584ae338e0f6ecaf736533.gif" alt="">
MailElement(邮箱) { [ConfigurationProperty(,Isrequired = String{ { [String(); } { [] = </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一一对应的关联了。下面我们来取值:

Customcaton custom = (Customcaton)ConfigurationManager.GetSection(tomcaton); url = custom.OAuthQQ.CallBACkUrl; id = custom.OAuthQQ.ClientId;

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

Web.config的写入

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

title="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" alt="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" src="https://cn.js-code.com/res/2019/02-07/23/8a8d618ad0ee6e1b921b68b638bb72ec.gif" >

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

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

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

title="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" alt="一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)" src="https://cn.js-code.com/res/2019/02-07/23/6e122c363b0054e7771a9caf283e37e3.png" >

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

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

String"> SetConnectionString(String key,String connectionString,String providerName = m.Data.SqlClient{ ConnectionStringsSection connectionSetTing = (ConnectionStringsSection)config.GetSection(Strings); (connectionSetTing.ConnectionStrings[key] == ) { ConnectionStringSetTings connectionStringSetTings = StringSetTings(key,connectionString,providerName); connectionSetTing.ConnectionStrings.Add(connectionStringSetTings); } { connectionSetTing.ConnectionStrings[key].ConnectionString =String; connectionSetTing.ConnectionStrings[key].ProviderName =); }

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

大佬总结

以上是大佬教程为你收集整理的一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)全部内容,希望文章能够帮你解决一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: