public static Entity <Singletons> RemoveGlobalComponentListener <TScope, TComponent>( this Entity <Singletons> self, IComponentListener <TScope, TComponent> listener) { return(self .RemoveGlobalComponentAddedListener(listener) .RemoveGlobalComponentRemovedListener(listener) .RemoveGlobalComponentReplacedListener(listener)); }
public static Entity <TScope> RemoveComponentListener <TScope, TComponent>( this Entity <TScope> self, IComponentListener <TScope, TComponent> listener) { return(self .RemoveComponentAddedListener(listener) .RemoveComponentRemovedListener(listener) .RemoveComponentReplacedListener(listener)); }
/// <summary> /// 构造内核容器 /// </summary> /// <param name="listenManager">组件监听管理器</param> /// <param name="lifestyleManagerRegistry">生命周期管理器注册表</param> /// <param name="activatorFactory">组件工厂的工厂</param> /// <param name="classLoader">类型加载器</param> public Kernel( IComponentListenerManager listenManager, ILifestyleManagerFactory lifestyleManagerRegistry, IActivatorFactory activatorFactory, IClassLoader classLoader) { if (listenManager == null) { throw new ArgumentNullException("listenManager"); } if (lifestyleManagerRegistry == null) { throw new ArgumentNullException("lifestyleManagerRegistry"); } if (activatorFactory == null) { throw new ArgumentNullException("activatorFactory"); } if (classLoader == null) { throw new ArgumentNullException("classLoader"); } ListenerManager = listenManager; LifestyleManagerRegistry = lifestyleManagerRegistry; ActivatorRegistry = activatorFactory; IdStores = new Dictionary <string, ComponentRegistration>(StringComparer.OrdinalIgnoreCase); TypeStores = new Dictionary <Type, List <ComponentRegistration> >(); Listner = ListenerManager as IComponentListener; RegisterInstance("ServiceLocator", typeof(IServiceLocator), this); RegisterInstance("ServiceRegistry", typeof(IServiceRegistry), this); RegisterInstance(AppDomain.CurrentDomain.Id.ToString() + ":" + classLoader.GetType(), typeof(IClassLoader), classLoader); ListenerManager.Init(this); RegisterListners(); ListenerManager.Enabled = true; }