现在中午不睡一会儿就头晕。

前一篇有人留言说为什么不写web.config?我个人非常反对庞大的web.config文件,可能其根源就在于互联星空系统的巨大的配置和它带来的混乱,自己实现一个小巧灵活的机制是我比较喜欢的,这样可以降低系统的侵入性,也可以方便我改成其他语言的版本。

这里我们来给刚才的Resource类加一个壳,因为我们毕竟不能用绝对的Path去访问,我们需要一个通过类名就可以访问得到配置的方式。

在加这个壳之前我们先规划一下配置文件,我们这里需要两种配置文件,一个是配置数据库连接的,一种是配置每个类的操作的,前边说过了,对输入和结果的映射在类的Attribute里完成,这样子配置每个类的配置文件就可以相当的简单了

数据库连接配置文件:
手把手教你写ORM(四)<?xml version="1.0" encoding="utf-8" ?>
手把手教你写ORM(四)
<config>
手把手教你写ORM(四)  
<session name="test">
手把手教你写ORM(四)    
<connectionstring>Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True</connectionstring>
手把手教你写ORM(四)    
<assambly>Alexander.Xbase.SqlExec</assambly>
手把手教你写ORM(四)    
<provider>Alexander.Xbase.SqlExec.Exec</provider>
手把手教你写ORM(四)    
<configbase>D:\MyDocuments\Visual Studio 2005\Projects\Alexander\Xbase\MenTest\bin\Debug\</configbase>
手把手教你写ORM(四)  
</session>
手把手教你写ORM(四)
</config>

每个Session配置一个数据库连接,configbase是用来指定这个连接的配置文件所在的目录,以后获取每个类的配置文件就在这个配置项的值所在的目录里面。数据库配置文件在System.AppDomain.CurrentDomain.BaseDirectory里面搜索,不用配置


每个类的配置文件:
手把手教你写ORM(四)<?xml version="1.0" encoding="utf-8" ?>
手把手教你写ORM(四)
<class>
手把手教你写ORM(四)    
<sql name="insert">insert into tb (aaa,bbb) values (#aaa,#bbb)</sql>
手把手教你写ORM(四)    
<sql name="getall" cache="true">select * from tb</sql>
手把手教你写ORM(四)
</class>

Sql节配置SQL指令,参数用#开头,属性Cache指示这个查询是否被缓存

我们需要两个类来分别表示这两种配置文件来提供对其的访问方式。
对于数据库配置文件我们先提供一个类来表示其结构:
 1手把手教你写ORM(四) public class SessionParameter
 2}

然后通过下面的类来访问,这里我们统统使用Xpath来搜索节点。
手把手教你写ORM(四)    public class Sessions
    }

这个样子就可以通过Session sec=Session.GetSessionByName(Name)来获取一个数据库配置文件了。
实现读取每个类的配置文件的方式相同,这里省略了,下来自己写

这里我们实现了包装读取配置的操作的类,接下来我们来看,如何实现插件的方式动态提供数据库操作组件

to be continue......

相关文章: