public virtual void Initialize()
{
IocManager.IocContainer.Install(new OwnCoreInstaller());
//领域事件的注册必须在其他的注册之前,这样才能够扫描所有的注册的类,并找到实现的IEventHandler的事件进行注册
IocManager.IocContainer.Install(new EventBusInstaller(IocManager));
UnitOfWorkRegistrar.Initialize(IocManager);
ValidationInterceptorRegistrar.Initialize(IocManager);
if (ConventionalRegistrarConfig.RegistrarForInterface)
IocManager.AddConventionalRegistrar(new BasicConventionalRegistrar());
if (ConventionalRegistrarConfig.Assembly == null)
{
var assemblies = ConventionalRegistrarConfig.IsWebApp ? BuildManager.GetReferencedAssemblies().Cast<Assembly>() : AppDomain.CurrentDomain.GetAssemblies();
assemblies = FilterSystemAssembly(assemblies);
foreach (var assemblie in assemblies)
{
IocManager.RegisterAssemblyByConvention(assemblie);
}
}
else
{
IocManager.RegisterAssemblyByConvention(ConventionalRegistrarConfig.Assembly);
}
}