dnn 的web.config 分析
2011-03-19 20:04
190 查看
首先出现的<sectionGroup name="dotnetnuke">里面使用IConfigurationSectionHandle派生的类DotNetNuke.Framework.Providers命名空间下的ProviderConfigurationHandler进行自定义的控制,在web.config的后面使用了
<dotnetnuke></dotnetnuke>这个节,对于数据节,我们可以看到
<data defaultProvider="SqlDataProvider">
<providers>
<clear/>
<add name="SqlDataProvider" type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider" connectionStringName="SiteSqlServer" upgradeConnectionString="" providerPath="~/Providers/DataProviders/SqlDataProvider/" objectQualifier="dnn_" databaseOwner="dbo"/>
</providers>
</data>
这个data 是被以下代码分析
public virtual object Create(object parent, object context, System.Xml.XmlNode node)
{
ProviderConfiguration objProviderConfiguration = new ProviderConfiguration();
objProviderConfiguration.LoadValuesFromConfigurationXml(node);
return objProviderConfiguration;
}
然后在ProviderConfiguration类中的以下代码调用
internal void LoadValuesFromConfigurationXml(XmlNode node)
{
XmlAttributeCollection attributeCollection = node.Attributes;
_DefaultProvider = attributeCollection["defaultProvider"].Value;
foreach (XmlNode child in node.ChildNodes) {
if (child.Name == "providers") {
GetProviders(child);
}
}
}
internal void GetProviders(XmlNode node)
{
foreach (XmlNode Provider in node.ChildNodes) {
switch (Provider.Name) {
case "add":
Providers.Add(Provider.Attributes["name"].Value, new Provider(Provider.Attributes));
break;
case "remove":
Providers.Remove(Provider.Attributes["name"].Value);
break;
case "clear":
Providers.Clear();
break;
}
}
}
以上代码对providers这个节点 里面的数据进行了过滤,add,remove,clear ,保存了DefaultProvider,是通过xml 的atrribue属性
当把配置节用hashtale保存好以后,在后面的模块的数据库开发中的类 class SqlDataProvider,可以看到
private ProviderConfiguration _providerConfiguration = ProviderConfiguration.GetProviderConfiguration(ProviderType);
ProviderType就是data节,得到providerConfiguration后就可以读取属性了
<dotnetnuke></dotnetnuke>这个节,对于数据节,我们可以看到
<data defaultProvider="SqlDataProvider">
<providers>
<clear/>
<add name="SqlDataProvider" type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider" connectionStringName="SiteSqlServer" upgradeConnectionString="" providerPath="~/Providers/DataProviders/SqlDataProvider/" objectQualifier="dnn_" databaseOwner="dbo"/>
</providers>
</data>
这个data 是被以下代码分析
public virtual object Create(object parent, object context, System.Xml.XmlNode node)
{
ProviderConfiguration objProviderConfiguration = new ProviderConfiguration();
objProviderConfiguration.LoadValuesFromConfigurationXml(node);
return objProviderConfiguration;
}
然后在ProviderConfiguration类中的以下代码调用
internal void LoadValuesFromConfigurationXml(XmlNode node)
{
XmlAttributeCollection attributeCollection = node.Attributes;
_DefaultProvider = attributeCollection["defaultProvider"].Value;
foreach (XmlNode child in node.ChildNodes) {
if (child.Name == "providers") {
GetProviders(child);
}
}
}
internal void GetProviders(XmlNode node)
{
foreach (XmlNode Provider in node.ChildNodes) {
switch (Provider.Name) {
case "add":
Providers.Add(Provider.Attributes["name"].Value, new Provider(Provider.Attributes));
break;
case "remove":
Providers.Remove(Provider.Attributes["name"].Value);
break;
case "clear":
Providers.Clear();
break;
}
}
}
以上代码对providers这个节点 里面的数据进行了过滤,add,remove,clear ,保存了DefaultProvider,是通过xml 的atrribue属性
当把配置节用hashtale保存好以后,在后面的模块的数据库开发中的类 class SqlDataProvider,可以看到
private ProviderConfiguration _providerConfiguration = ProviderConfiguration.GetProviderConfiguration(ProviderType);
ProviderType就是data节,得到providerConfiguration后就可以读取属性了
相关文章推荐
- Spring boot源码分析-AnnotationConfigEmbeddedWebApplicationContext默认web环境下的启动容器(3)
- Web.config详细分析
- Spring boot源码分析-AnnotationConfigApplicationContext非web环境下的启动容器(2)
- Petshop3.0-web.config文档分析(一…
- DNN详解(1)-Web.Config
- Petshop3.0--web.config文档分析(…
- DNN模块之自助生成web.config
- Web.config 和 App.config 的区别分析
- Web.config 和 App.config 的区别分析
- 深入分析JavaWeb Item6 — servletConfig 与servletContext详
- 深入分析JavaWeb Item6 -- servletConfig 与servletContext详解
- web.config节点分析
- Web.Config 分析
- Petshop3.0学习笔记(一)web.config文档分析
- 深入分析JavaWeb Item32 -- 数据库连接池
- ELMAH 在IIS6.0 和7.0中webconfig 配置区别
- 精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进 推荐
- 更改web.config启用gzip压缩
- web.config文件的用法
- 对asp.net2.0网站web.config中的数据库连接字符串加密