/// <summary> /// 创建事件监听器 /// </summary> /// <param name="execution">事件执行器</param> /// <param name="isWildcard">是否是通配符方法</param> /// <returns>事件监听器</returns> protected virtual Func <string, object[], object> MakeListener(Func <string, object[], object> execution, bool isWildcard = false) { return((eventName, payloads) => execution(eventName, isWildcard ? Arr.Merge(new object[] { eventName }, payloads) : payloads)); }
/// <summary> /// 创建事件监听器 /// </summary> /// <param name="target">调用目标</param> /// <param name="method">调用方法</param> /// <param name="isWildcard">是否是通配符方法</param> /// <returns>事件监听器</returns> protected virtual Func <string, object[], object> MakeListener(object target, MethodInfo method, bool isWildcard = false) { return((eventName, payloads) => Container.Call(target, method, isWildcard ? Arr.Merge(new object[] { eventName }, payloads) : payloads)); }
/// <summary> /// 获取引导程序 /// </summary> /// <returns>引导脚本</returns> protected virtual IBootstrap[] GetBootstraps() { return(Arr.Reverse(Arr.Merge(GetComponents <IBootstrap>(), Bootstraps.Bootstrap))); }
/// <summary> /// 构建一个服务提供者引导程序 /// </summary> /// <param name="component">Unity根组件</param> /// <param name="serviceProviders">服务提供者列表</param> public BootstrapProviderRegister(Component component, IServiceProvider[] serviceProviders = null) { providers = Arr.Merge(Providers.ServiceProviders, serviceProviders); this.component = component; }
/// <summary> /// 获取引导程序 /// </summary> /// <returns>引导脚本</returns> protected virtual IBootstrap[] GetBootstraps() { return(Arr.Merge(GetComponents <IBootstrap>(), Bootstraps.GetBoostraps(this))); }
/// <summary> /// 获取引导程序 /// </summary> /// <returns>引导脚本</returns> private IBootstrap[] GetBootstraps() { return(Arr.Merge(component.GetComponents <IBootstrap>(), global::CatLib.Bootstrap.Bootstraps)); }