.net 的提供者模型

 

使用提供者模型的好处:使用提供者模型的系统将具有很好的弹性和可扩充性。

例如你可以使用sql server数据或者是Oracle数据库做为你的数据源,并且只需要改变一下web.config文件。

 

下面以一个公司的人员信息的存储进行讲解。现在我们用来存储人员信息(personInfo)的数据库是

sql server2005,考虑到以后会使用其他数据库(例如mysql,oracle),我们打算用提供者模型方式进行 系统设计。

1:web.config的配置,增加如下自定义配置节

<Company personInfoProviderName="sqlProvider">
 
<PersonInfoProviders>
    
<add name="sqlProvider" type="Company.SqlPersonInfoProvider"/>
 
</PersonInfoProviders>
</Company>

 2: 如果以后改用其他方式进行数据存储,可以这样修改

<Company personInfoProviderName="mysqlProvider">
 
<PersonInfoProviders>
  
<add name="sqlProvider" type="Company.SqlPersonInfoProvider"/>
  
<add name="mysqlProvider" type="Company.MysqlPersonInfoProvider"/>
 
</PersonInfoProviders >
</Company>


3:还没有完,你还得在web.config里增加如下代码

<configSections>
  
<section name="Company" type="Company.CompanyProvidersSection,Company"/>
</configSections>

 以上代码必须紧跟在<configuration>的下面,否则会出错。

 4:好了,这才开始我们的c#代码,他们所在的命名空间是Company.

首先新建三个类:PersonInfoProvider,SqlPersonInfoProvider,MysqlPersonInfoProvider。

 PersonInfoProvider是个abstract类,它继承ProviderBase,它的作用是提供抽象的方法让

SqlPersonInfoProvider和MysqlPersonInfoProvider来实现。

例如你要增加或删除人员,那么你首先要在PersonInfoProvider里增加两个抽象的方法:

public abstract void DeletePerson();

public abstract void AddPerson();

这只是第一步,第二步你还得在SqlPersonInfoProvider里进行具体的实现。

 5:你还要在新建一个类:CompanyProvidersSection,这个类的属性主要是和web.config的属性相互对应,

然后通过这个类来或得我们的提供者到底是谁。

 

Code

 

6:好,写到这里,但最重要的还没写,就是如何或得并且使用提供者。我们现在需要添加人员信息。

 

Code

 

 

 

posted @ 2008-10-31 14:01  suim  阅读(1765)  评论(7编辑  收藏  举报