在Orchard,模块和主题都是可以插拔式的,在源码处理时,用类型(参考:DefaultExtensionTypes)区分,都没太大的本质区别,以下都称做模块. 插件的支持,实现分以下几步: 搜集模块的信息 确定模块的加载器 复制DLL到App_Data\Dependencies文件夹(动态编译的项目不复制) 加载启用模块的程序集,如果是动态编译项目,开始编译 得到程序集的里所有公共的类(不包含IsAbstract) 加载类型到autofac容器中,构造网站运行环境 搜集模块信息 Orchard…