Web.config文件包含了许多配置节来使DataProvider模式起作用。第一个配置节注册了这些提供者(Providers)和他们相应的配置节处理方法(ConfigurationSectionHandlers)。尽管在这个例子中我们仅仅展示了DotNetNuke配置节组中的一个,我们可以通过类似的方法配置其它的提供者(也就是抽象验证提供者等等)。但有一点是必须保证的,那就是web.config文件中必须实现这些配置节。
<configSections>
<sectionGroup name="dotnetnuke">
<section name="data" type="DotNetNuke.ProviderConfigurationHandler, DotNetNuke" />
sectionGroup>
configSections>
下面的配置节是为老式的数据访问方法的模块而保留的:
<appSettings>
<add key="connectionString" value="Server=localhost;Database=DotNetNuke;uid=sa;pwd=;" />
appSettings>
如上最终实现了大量的提供者模块。
配置节也包含了一个
<dotnetnuke>
<data defaultProvider="SqlDataProvider" >
<providers>
<clear/>
<add name = "SqlDataProvider"
type = "DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider"
connectionString = "Server=localhost;Database=DotNetNuke;uid=sa;pwd=;"
providerPath = "~\database\SqlDataProvider\"
objectQualifier = "DotNetNuke"
databaseOwner = "dbo"
/>
<add name = "AccessDataProvider"
type = "DotNetNuke.Data.AccessDataProvider, DotNetNuke.AccessDataProvider"
connectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
providerPath = "~\database\AccessDataProvider\"
objectQualifier = "DotNetNuke"
databaseFilename = "DotNetNuke.mdb"
/>
providers>
data>
dotnetnuke>
下面是对providers集合中的节点作用的详细说明。
1、 声明一个空的
2、 Providers继承了父配置中
3、 如果某项已经存在了或被继承了再用
4、
5、 如果一个项被
6、 如果一个项
7、
|
| |
|
描述 |
增加一个数据提供者(data provider)。 |
|
属性 |
Name——provider的友好的名称。 Type——一个实现了provider接口的类。这个值是一个程序集的完整的关联。 providerPath——查找provider的特殊资源(如脚本)的路径。 其它name/value对——也许还有一些附加的名称/值对,所有的名称/值对都是provider能够理解的(处理的)。 |
|
| |
|
描述 |
清除一个指定的数据提供者 |
|
属性 |
Name——要清除的provider的友好名称。 |
|
| |
|
描述 |
清除所有的继承的提供者。 |
\Components\Provider.vb
Provider.vb类提供了所有的实现细节,这些实现包括从web.config文件加载provider的信息以及应用
\Components\DataProvider.vb
DataProvider.vb是一个抽象类,这个类包含了DNN的所有的数据访问方法。它包含了一个工厂本身的实例方法(Instance()),它负责在运行时动态加载web.config中描述的合适的程序集。
' unique provider name used for caching
Private Const ProviderType As String = "data"
Private Const ProviderName As String = ""