这段时间在研究微软的.net petshop(现在才开始研究,是不是太落后了啊,哈哈,.net 2.0和petshop4.0都发布了),关于它的架构,网上有很多的文章,所以了解起来还是不难的。不过我发现我更关注的是它的技术实现细节,这个应该跟我的基础有关了:(,不过也好,我将我的学习点滴纪录下来,希望能在巩固自己知识的同时,能够对大家有一定的参考作用。
       先从web.config开始吧。 我们先来分析一下它的web.config的配置文件。
       1、  appsetting配置节:这里主要放的是一些数据库连接字符串信息、数据层信息等,不多说了。
       2、  httpruntime配置节:这里的主要作用是在运行时动态的加载子配置节中的程序集。
      

<runtime>
    
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      
<qualifyAssembly partialName="PetShop.SQLServerDAL" fullName="PetShop.SQLServerDAL,version=3.2.1.0,publicKeyToken=a7987b61c51ca872,culture=neutral" />
    
</assemblyBinding>
    
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      
<qualifyAssembly partialName="PetShop.OracleDAL" fullName="PetShop.OracleDAL,version=3.2.1.0,publicKeyToken=a7987b61c51ca872,culture=neutral" />
    
</assemblyBinding>
  
</runtime>

这里需要说明一下的是,在qualifyAssembly节点内,fullname用来指定从全局程序集缓存中加载指定的程序集,所以这里的PetShop.SQLServerDAL必须是全局程序集。
     3、  后面一部分就不说了,主要是用来实现forms身份验证控制了,可以参考我的 利用HttpModule和forms身份验证,实现角色验证控制
   

    文章当然不会到这里就结束了,仅仅了解一下petshop的config的配置当然是不行的,下面就来说明一下,一个config文件该怎么写。

    1、各个标记名的命名规则:
   标记名和属性名是 Camel 大小写形式的,这意味着标记名的第一个字符是小写的,任何后面连接单词的第一个字母是大写的。属性值是 Pascal 大小写形式的,这意味着第一个字符是大写的,任何后面连接单词的第一个字母也是大写的。true false 例外,它们总是小写的(摘自msdn,呵呵)。

 

     2、自定义配置节:

    .net中config文件默认继承自machine.config, 大家可以参考一下, 文件保存在路c:\windows\microsoft.net\.framework\v1.*****\config下。除了machine.config中的节点,我们也可以自定义自己的节点,方式如下:

<configSections>       
<sectionGroup name=”test”>   
            
<section name="setting" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>    
</sectionGroup>
</configSections>


   照上面的结构,应该添加如下节点:

<test>
   
<settings>
       
<add key=”id” value=”000256”/>
   
</settings>
</test>

    如果要在程序中读取配置节的值,可以用System.Configuration. ConfigurationSettings.GetConfig来获取,如下所示:
   NameValueCollection  nvc = (NameValueCollection)(System.Configuration.ConfigurationSettings.GetConfig("test\settings"));
   string aa = nvc["id"].ToString();

      3、  自定义配置节中的type:

        刚刚的settings配置节,我用的是系统定义的System.Configuration.NameValueFileSectionHandler,其实也可以根据自己的需要自定义类型,只需要在自己写的类中,继承IConfigurationSectionHandler,实现它的creat方法。

      web.config的研究到这里就先告一段落了,敬请期待偶的下一篇随笔,全局程序集和私有程序集


 

    
   

 

posted on 2006-08-25 16:38  紫mm  阅读(1996)  评论(4编辑  收藏  举报