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 exit(0); 直接退出程序
    友盟推送简单调用
    KxMenu下拉菜单
    打开相册另类写法
    简洁调用字号
    十六进制颜色宏
    Swift定义单例
    不要在初始化方法和dealloc方法中使用Accessor Methods
    copyin函数
    c语言中的赋值
  • 原文地址:https://www.cnblogs.com/SeaTop/p/5514043.html
Copyright © 2011-2022 走看看