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

  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/whwqs/p/3411870.html
Copyright © 2011-2022 走看看