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

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

  • 相关阅读:
    crontab机会任务监控
    Python 模块的一般处理
    MySQLdb autocommit
    MySQLdb callproc 方法
    Pthon MySQLdb 的安装
    CentOS7安装MySQL
    Linux中的网络
    Linux中的盘符问题
    类比的方法学习Performance_schema
    MySQL 设置数据库的隔离级别
  • 原文地址:https://www.cnblogs.com/SeaTop/p/5514043.html
Copyright © 2011-2022 走看看