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();

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

  • 相关阅读:
    python学习之旅-02
    python学习之旅-01
    wps2016热点永久关闭
    一个游戏制作的全过程
    游戏是怎么赚钱的
    游戏数值策划入门教程
    成长系统的设计方法:如何“挖坑”,又不让玩家反感
    游戏数值策划经验篇:从多角度解读游戏经验值设计
    暴雪战斗公式——除法公式的精髓
    游戏数值策划属性篇(二):属性价值评估
  • 原文地址:https://www.cnblogs.com/SeaTop/p/5514043.html
Copyright © 2011-2022 走看看