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的自己的类。

  • 相关阅读:
    CLBZDQ
    CF1559D 题解
    DP 的凸优化
    正睿暑期集训7B
    基于 TiSpark 的海量数据批量处理技术
    PowerDesigner16.5下载和安装教程
    使用TiDB MPP
    使用 TiDB 构建实时应用
    oracle转mysql数据库
    kafka-jdbc-connector-sink实现kafka中的数据同步到mysql
  • 原文地址:https://www.cnblogs.com/whwqs/p/3411870.html
Copyright © 2011-2022 走看看