/// <summary> /// 注册接口 /// </summary> /// <typeparam name="TInterface">接口类型</typeparam> /// <typeparam name="TClass">接口的实际实现</typeparam> /// <param name="lifeCycle">生命周期</param> public static void Register <TInterface, TClass>(LifeCycleEnum lifeCycle = LifeCycleEnum.InstancePerDependency) where TClass : TInterface { var result = builder.RegisterType <TClass>().As <TInterface>().PropertiesAutowired(); switch (lifeCycle) { case LifeCycleEnum.InstancePerDependency: default: result.InstancePerDependency(); break; case LifeCycleEnum.InstancePerLifetimeScope: result.InstancePerLifetimeScope(); break; case LifeCycleEnum.InstancePerMatchingLifetimeScope: result.InstancePerMatchingLifetimeScope(); break; case LifeCycleEnum.InstancePerOwned: result.InstancePerOwned(typeof(TInterface)); break; case LifeCycleEnum.SingleInstance: result.SingleInstance(); break; case LifeCycleEnum.InstancePerRequest: result.InstancePerRequest(); break; } }
public void Execute(List <Entity> entitys) { foreach (Entity item in entitys) { LifeCycleEnum lifeEnum = item.GetValue <LifeCycleEnum>(LifeCycleComponentVariable.lifeCycle); switch (lifeEnum) { case LifeCycleEnum.Destory: Observer.Instance.RecoverEntity(item); break; case LifeCycleEnum.DelayDestory: float delayTime = item.GetValue <float>(LifeCycleComponentVariable.dealyTime); delayList.Add(new DelayEntity() { CurrentEntity = item, DelayTime = delayTime }); break; case LifeCycleEnum.DontDestory: case LifeCycleEnum.None: default: break; } } }
public void Execute(List <Entity> entitys) { foreach (Entity item in entitys) { GameObject obj = item.GetValue <GameObject>(GameObjectComponentVariable.value); LifeCycleEnum lifeEnum = item.GetValue <LifeCycleEnum>(LifeCycleComponentVariable.lifeCycle); switch (lifeEnum) { case LifeCycleEnum.Destory: GameObject.Destroy(obj); break; case LifeCycleEnum.DelayDestory: float delayTime = item.GetValue <float>(LifeCycleComponentVariable.dealyTime); GameObject.Destroy(obj, delayTime); break; case LifeCycleEnum.DontDestory: GameObject.DontDestroyOnLoad(obj); break; case LifeCycleEnum.None: default: break; } } }
protected override ExecutionRequest Create(Type objectType, JObject jObject) { LifeCycleEnum lifeCycle = jObject.GetValue("lifecycle").ToObject <LifeCycleEnum>(); switch (lifeCycle) { case Enums.LifeCycleEnum.INSTALL: return(new InstallRequest()); case Enums.LifeCycleEnum.UPDATE: return(new UpdateRequest()); case Enums.LifeCycleEnum.UNINSTALL: return(new UninstallRequest()); case Enums.LifeCycleEnum.EVENT: return(new EventRequest()); case Enums.LifeCycleEnum.PING: return(new PingRequest()); case Enums.LifeCycleEnum.CONFIGURATION: return(new ConfigurationRequest()); case Enums.LifeCycleEnum.OAUTH_CALLBACK: return(new OAuthCallbackRequest()); default: throw new NotImplementedException("Unknown value for LifeCycleEnum"); } }
/// <summary> /// 注册接口 /// </summary> /// <typeparam name="TInterface">接口类型</typeparam> /// <typeparam name="TClass">接口的实际实现</typeparam> /// <param name="lifeCycle">生命周期</param> /// <param name="enableInterceptors">是否启用aop注册</param> public static void Register <TInterface, TClass, TIInterceptor>(LifeCycleEnum lifeCycle = LifeCycleEnum.InstancePerDependency, bool enableInterceptors = true) where TClass : TInterface where TIInterceptor : class, IInterceptor { var result = builder.RegisterType <TClass>().As <TInterface>().PropertiesAutowired(); switch (lifeCycle) { case LifeCycleEnum.InstancePerDependency: default: result.InstancePerDependency(); break; case LifeCycleEnum.InstancePerLifetimeScope: result.InstancePerLifetimeScope(); break; case LifeCycleEnum.InstancePerMatchingLifetimeScope: result.InstancePerMatchingLifetimeScope(); break; case LifeCycleEnum.InstancePerOwned: result.InstancePerOwned(typeof(TInterface)); break; case LifeCycleEnum.SingleInstance: result.SingleInstance(); break; case LifeCycleEnum.InstancePerRequest: result.InstancePerRequest(); break; } //开启AOP if (enableInterceptors) { builder.RegisterType <TIInterceptor>().AsSelf(); result.EnableInterfaceInterceptors().InterceptedBy(typeof(TIInterceptor)); } }