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));
 }
示例#3
0
        /// <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;
        }