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

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

  • 相关阅读:
    计算几何中的精度问题
    codeforces上分计划
    洛谷P1962 斐波那契数列 (矩阵快速幂)
    codeforces 1474 E
    codeforces 1474 C
    codeforces 1467 E
    牛客练习赛76 F phi and phi (莫比乌斯反演)
    牛客练习赛76 D 魔物消灭计划 (斯坦纳树)
    牛客练习赛76 E 牛牛数数 (线性基)
    codeforces 1467 D. Sum of Paths (dp)
  • 原文地址:https://www.cnblogs.com/wdwyy/p/3294706.html
Copyright © 2011-2022 走看看