zoukankan      html  css  js  c++  java
  • Nop源码分析三

    程序的初始化工作和Ioc工作已经做完,nop默认引擎已经初始化。

    下面在回到global文件的启动方法Application_Start()中,

    1,继续分析下面的代码:

               var dependencyResolver = new NopDependencyResolver();
                DependencyResolver.SetResolver(dependencyResolver);

    这两行代码的作用是:控制器激活的时候,我们用了自定义的NopDependencyResolver,该类有两个方法一个是GetService(Type serviceType),一个是GetServices(Type serviceType)。使用自定义的该类,主要是为了实现与IOC容器集成。

    2,添加自定义模型绑定:   ModelBinders.Binders.Add(typeof(BaseNopModel), new NopModelBinder());

    3,  ViewEngines.Engines.Add(new ThemeableRazorViewEngine()); 添加自定义视图引擎。

           ModelMetadataProviders.Current = new NopMetadataProvider();  自定义元数据提供者。

                AreaRegistration.RegisterAllAreas();    注册所有的areas
                RegisterGlobalFilters(GlobalFilters.Filters); 过滤器
                RegisterRoutes(RouteTable.Routes);  路由

           DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
                ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(new NopValidatorFactory()));  添加流验证。

    4,      从程序集中把所有资源视图取出来,然后asp.net 编译系统中注册这些视图。

    var embeddedViewResolver = EngineContext.Current.Resolve<IEmbeddedViewResolver>();
                var embeddedProvider = new EmbeddedViewVirtualPathProvider(embeddedViewResolver.GetEmbeddedViews());
                HostingEnvironment.RegisterVirtualPathProvider(embeddedProvider);

    5,最后我们启动计划任务,代码如下:

                    TaskManager.Instance.Initialize();
                    TaskManager.Instance.Start();

        下面分析计划任务中都干了什么事。

  • 相关阅读:
    iOS UIScrollView 停止滑动 减速
    移动App-UI配制篇
    pathload --有效的网络带宽估计方法
    页面提交错误,页面间参数传递java.lang.NumberFormatException: null
    jquery easyui Accordion的使用
    利用开源HTML5引擎lufylegend.js结合javascript实现的五子棋人机对弈
    POJ 3221 Diamond Puzzle(BFS)
    信息管理系统怎样获取当前日期时间
    Unity3d-XML文件数据解析&amp;JSON数据解析
    oracle data file header replace(測)
  • 原文地址:https://www.cnblogs.com/SeaTop/p/5514043.html
Copyright © 2011-2022 走看看