• 在vs2005的web site项目中读取web.config文件 荣


    任务:
    读取下面xml中的某些信息(该XML从web.config中摘取):

    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <configSections>
          <section name="RemotingCompress" type="Confige.RemotingCompressSection, 程序集名称"
                   allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true"/>
        </configSections>
      <connectionStrings/>
      <RemotingCompress CompressLevel="xuminrong" CompressCacheSize="79" UnCompressCacheSize="79" MinCompressSize="0"/>
      <appSettings>
        <!-- 数据库服务器名称 -->
        <add key="TestConfiguate" value="这是一个测试"/>
      </appSettings>
    </configuration>


    实现:

    1:RemotingCompressSection 类:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    namespace Confige
    {
        public class RemotingCompressSection : System.Configuration.ConfigurationSection
        {
            [ConfigurationProperty("CompressLevel")]
            public string CompressLevel
            {
                get
                {
                    return (string)this["CompressLevel"];
                }
                set
                {
                    this["CompressLevel"] = value;
                }
            }
          

     

    [ConfigurationProperty("CompressCacheSize", DefaultValue = "40960", Options = ConfigurationPropertyOptions.None)]
            public string CompressCacheSize
            {
                get
                {
                    return (string)this["CompressCacheSize"];
                }
                set
                {
                    this["CompressCacheSize"] = value;
                }
            }

               [ConfigurationProperty("UnCompressCacheSize", DefaultValue = "40960", Options = ConfigurationPropertyOptions.None)]
            public string UnCompressCacheSize
            {
                get
                {
                    return (string)this["UnCompressCacheSize"];
                }
                set
                {
                    this["UnCompressCacheSize"] = value;
                }
            }

          }
    }


    2: 前台页面:_Default

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    using Confige;
    public  partial class _Default : System.Web.UI.Page
    {

       protected void Page_Load(object sender, EventArgs e)
        {

            RemotingCompressSection obj = new RemotingCompressSection();
            Response.Write(obj.CompressLevel + obj.CompressCacheSize +  obj.UnCompressCacheSize);
            Response.WriteSystem.Configuration.ConfigurationSettings.AppSettings["TestConfiguate"]);
           
        }
    }

    3:分析
    1)RemotingCompressSection 类必须继承自System.Configuration.ConfigurationSection。
    2)对<Add/>元素的读取,与1.1中没有什么改变。
    3)注意大小写敏感。
    4)关于定制特性ConfigurationProperty的问题:自己去查找相关资料。
    5)<section name="RemotingCompress" type="Confige.RemotingCompressSection, 程序集名称" ...
    解析:Confige.RemotingCompressSection:解析该配置文件的类名称
    程序集名称:解析类所在的程序集的名称。
    RemotingCompress:对应于<RemotingCompress/>元素,有点像元素声明。

    4:疑问
    1)找不到命名空间。
       解决:要想要命名空间,自己加。
    2)找不到程序集名称。
       解决:至今没有解决。

    参考文章:
     

    http://xrinehart.cnblogs.com/archive/2005/12/03/289978.html  
    (革新:NET20的自定义配置文件体系初探.doc)




     

  • 相关阅读:
    基于alpine定制常用命令镜像
    sudo cat > EOF权限问题
    Nginx AWS ELB 域名解析后端502问题
    harbor使用aws s3存储
    Tomcat 优化和改进
    webservice 使用JaxWsDynamicClientFactory报空指针异常
    spring boot 集成 Apache CXF 调用 .NET 服务端 WebService
    eclipse launching workspace太慢的解决方法
    Remote System Explorer Operation卡死Eclipse解决方案
    同一个Tomcat 同一个端口 部署多个项目
  • 原文地址:https://www.cnblogs.com/admin11/p/303462.html
Copyright © 2020-2023  润新知