/// <summary> /// load service /// </summary> /// <returns></returns> public virtual void LoadServices(List <Assembly> assemblies) { var jimuServicesType = GetJimuService(assemblies); var container = RegisterToIOC(jimuServicesType, assemblies); JimuServiceDescParser descParser = new JimuServiceDescParser(); JimuServiceEntryParser entryParser = new JimuServiceEntryParser(container); var tmpServices = new List <JimuServiceEntry>(); foreach (var type in jimuServicesType) { // the type catch from Interface.dll will not register sccessful, so we just filter the success one if (container.IsRegistered(type)) { foreach (var methodInfo in GetMethodInfos(type)) { JimuServiceDesc desc = descParser.Parse(methodInfo); var service = entryParser.Parse(methodInfo, desc); tmpServices.Add(service); } } } _services.Clear(); _services.AddRange(tmpServices); OnServiceLoaded?.Invoke(_services); }
internal static void RunServiceLoaded(PointBlankService service) => OnServiceLoaded?.Invoke(service);