namespace Nop.Core.Infrastructure.DependencyManagement
{
public enum ComponentLifeStyle
{
Singleton = 0,
Transient = 1,
LifetimeScope = 2
}
}
namespace Nop.Core.Infrastructure.DependencyManagement
{
/// <summary>
/// Configures the inversion of control container with services used by Nop.
/// </summary>
public class ContainerConfigurer
{
public virtual void Configure(IEngine engine, ContainerManager containerManager, EventBroker broker, NopConfig configuration)
{
//other dependencies
containerManager.AddComponentInstance<NopConfig>(configuration, "nop.configuration");
containerManager.AddComponentInstance<IEngine>(engine, "nop.engine");
containerManager.AddComponentInstance<ContainerConfigurer>(this, "nop.containerConfigurer");
//type finder
containerManager.AddComponent<ITypeFinder, WebAppTypeFinder>("nop.typeFinder");
//register dependencies provided by other assemblies
var typeFinder = containerManager.Resolve<ITypeFinder>();
containerManager.UpdateContainer(x =>
{
var drTypes = typeFinder.FindClassesOfType<IDependencyRegistrar>();
var drInstances = new List<IDependencyRegistrar>();
foreach (var drType in drTypes)
drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType));
//sort
drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList();
foreach (var dependencyRegistrar in drInstances)
dependencyRegistrar.Register(x, typeFinder);
});
//event broker
containerManager.AddComponentInstance(broker);
}
}
}
namespace Nop.Core.Infrastructure.DependencyManagement
{
public interface IDependencyRegistrar
{
/// <summary>
/// 此方法在通过ContainerBuilder注册依赖关系。
/// </summary>
/// <param name="builder">容器管理者类</param>
/// <param name="typeFinder">类型查找者接口</param>
void Register(ContainerBuilder builder, ITypeFinder typeFinder);
/// <summary>
/// 注册排序序号
/// </summary>
int Order { get; }
}
}
//set dependency resolver var dependencyResolver = new NopDependencyResolver(); DependencyResolver.SetResolver(dependencyResolver);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有