NopCommerce源码架构详解-Themes网站主题实现源码分析三

NopCommerce源码架构详解-Themes网站主题实现源码分析三

3323发表于2016-08-01

上面一篇文章重点介绍了一下ThemeContext和ThemeProvider。下面来结合具体的例子来看看主题的视图是怎么使用ThemeContext的,最后在页面显示是什么效果。

nop主题DefaultClean里面只有一个Head.cshtml视图,用于加载对应主题相关的样式和图片。


Head.cshtml内容下图:


var themeName = EngineContext.Current.Resolve<IThemeContext>().WorkingThemeName从IoC容器(Autofac)中获取对应组件(IThemeContext具体实现)并调用其属性WorkingThemeName。

在Nop.Web.Framework.DependencyRegistrar类中的Register方法可以看到如下代码,分别对IThemeProvider和IThemeContext进行了注册:

 builder.RegisterType<ThemeProvider>().As<IThemeProvider>().InstancePerLifetimeScope();
 builder.RegisterType<ThemeContext>().As<IThemeContext>().InstancePerLifetimeScope();


具体最终的页面html源码如下图:

对应主题为DefaultClean。


小编蓝狐