zoukankan      html  css  js  c++  java
  • nopcommerce笔记1

    在Application_Start中依次的调用是:

    EngineContext.Initialize

    new NopEngine

    ContainerConfigurer.Configure

    NopEngine.Initialize

    ContainerConfigurer.Configure在NopEngine的构造函数调用:

    public NopEngine(EventBroker broker, ContainerConfigurer configurer)
    {
    var config = ConfigurationManager.GetSection("NopConfig") as NopConfig;
    InitializeContainer(configurer, broker, config);//这里面调用了ContainerConfigurer.Configure
    }

    private void InitializeContainer(ContainerConfigurer configurer, EventBroker broker, NopConfig config)
    {
    var builder = new ContainerBuilder();

    _containerManager = new ContainerManager(builder.Build());
    configurer.Configure(this, _containerManager, broker, config);
    }

    我当时有一个想法,为什么不把IEngine的接口void Initialize(NopConfig config);设计成:

    void Initialize(NopConfig config,ContainerConfigurer configurer, EventBroker broker);

    把在构造函数中的configurer.Configure调用移到Initialize中。

    后来一想,这样会失去通用性,因为ContainerConfigurer 、EventBroker 的功能并非必须的。

    非要移到Initialize中也不是不可,可以做一个实现IEngine的自己的类。

  • 相关阅读:
    Shell编程基础
    lenovo future leaer deveolpmetn program
    求1+2+...+n
    Linux下使用qq
    判断2个线段是否相交
    java大数相加
    Django路由系统
    Django框架
    HTTP协议及Django配置
    mysql索引
  • 原文地址:https://www.cnblogs.com/whwqs/p/3411870.html
Copyright © 2011-2022 走看看